最近我们的表格中,需要更改数据的显示方式,就是jqgrid中以树形的方式显示。请先看图:
就是简单的这种从属方式。但是因为这个没有找到官方的文档(后来找到了,但是发现是翻译过来的,也不是很清楚),所以做出来稍微的有点困难,好在方法总比困难多。这个问题还是解决了,在这里我记录一下。方便以后的小伙伴们运用,如果有大神的话,也欢迎指出错误。
首先是在jqgrid中需要添加东西,请看下面的demo:
1 treeGrid: true, 2 treeGridModel: 'adjacency', //固定写法,还有其他的一种方式,但是那种没有研究过 3 ExpandColumn : 'agent_id', // 4 ExpandColClick: true, //能不能点击 false就不能点击了,true就是能点击 5 treeReader : { 6 //前面的四个参数需要在json中展示 7 level_field: "level", //级别,主要是就是说展现出来是第几层,最高级是0,然后是1,2,3…… 8 parent_id_field: "parent", //用来标识哪个是父元素(需要时字符串格式:“parent”:“123”是可以的,但是如果是“parent”:123就错了) 9 leaf_field: "is_leaf", //是不是根节点,false表示这个不是最后的节点,true表示是最后的节点。(如果这个是最后的节点,但是设置的还是false,会发生一种情况,就是点击这个又重新加载了一遍数据) 10 expanded_field: "expanded", //是不是需要展开,false不展开,true展开 11 loaded_field:true // 12 },
就是这12行代码,其实上面的写在html中,前端的任务就算是完成了。但是考虑到还需要后台数据的配合,所以下面还是需要说一下, json数据的格式。
下面贴出来数据的格式:
1 [ 2 { 3 "agent_id": "2019-04-17", 4 "game_id": "134283522", 5 "level": 0, 6 "is_leaf": false, 7 "players": 42, 8 "rounds": 42, 9 "bets": 13650000, 10 "effects": 26650000, 11 "total_revenue": 8850000, 12 "fees": 650000, 13 "total_win_agent": -8850000, 14 "id":"134283522", 15 "expanded":false 16 }, { 17 "game_id": "134283522", 18 "agent_id": 96292, 19 "players": 42, 20 "rounds": 42, 21 "bets": "13650000", 22 "effects": "26650000", 23 "fees": "650000", 24 "total_win_agent": "-8850000", 25 "total_revenue": "8850000", 26 "level": 1, 27 "is_leaf": true, 28 "parent": "134283522", 29 "expanded":false 30 }, { 31 "agent_id": "2019-04-17", 32 "game_id": "134284035", 33 "level": 0, 34 "is_leaf": false, 35 "players": 6, 36 "rounds": 6, 37 "bets": 1800000, 38 "effects": 950000, 39 "total_revenue": 150000, 40 "fees": 50000, 41 "total_win_agent": -150000, 42 "id":"134284035", 43 "expanded":false 44 }, { 45 "game_id": "134284035", 46 "agent_id": 96292, 47 "players": 6, 48 "rounds": 6, 49 "bets": "1800000", 50 "effects": "950000", 51 "fees": "50000", 52 "total_win_agent": "-150000", 53 "total_revenue": "150000", 54 "level": 1, 55 "is_leaf": true, 56 "parent": "134284035" 57 }, 58 { 59 "game_id": "134284035", 60 "agent_id": 96292, 61 "players": 6, 62 "rounds": 6, 63 "bets": "1800000", 64 "effects": "950000", 65 "fees": "50000", 66 "total_win_agent": "-150000", 67 "total_revenue": "150000", 68 "level": 1, 69 "is_leaf": false, 70 "parent": "134284035", 71 "id":"123" 72 }, 73 { 74 "parent":"123", 75 "game_id": "134284035", 76 "agent_id": 96292, 77 "players": 6, 78 "rounds": 6, 79 "bets": "1800000", 80 "effects": "950000", 81 "fees": "50000", 82 "total_win_agent": "-150000", 83 "total_revenue": "150000", 84 "level": 2, 85 "is_leaf": true 86 } 87 ]
里面除了原来的数据,还需要把咱们需要的东西加进来。而且因为是个数组,所以这里面的数据是有顺序的,如果顺序不对的话,显示就有问题了。这里需要注意