Let me post the official ex of treegrid for everyone to take a look at:
$(function(){ $('#tt').treegrid({ url:'treegrid_data3.json', onAfterEdit:function(row,changes){ alert(row.name); } }); })
This is the page initialization.
Look at his JSON:
{"total":117,"rows":[ <SPAN style="COLOR: #ff0000">{"id":1,"code":"code1","name":"name1","addr":"address1","state":"closed"},</SPAN> {"id":11,"code":"code11","name":"name11","addr":"address11","<SPAN style="COLOR: #ff0000">_parentId":1</SPAN>}, {"id":12,"code":"code12","name":"name12","addr":"address12","<SPAN style="COLOR: #ff0000">_parentId":1</SPAN>}, {"id":21,"code":"code21","name":"name21","addr":"address21","_parentId":1}, {"id":22,"code":"code22","name":"name22","addr":"address22","_parentId":1}, {"id":31,"code":"code31","name":"name31","addr":"address31","_parentId":1}, {"id":32,"code":"code32","name":"name32","addr":"address32","_parentId":1}, {"id":41,"code":"code41","name":"name41","addr":"address41","_parentId":1}, {"id":42,"code":"code42","name":"name42","addr":"address42","_parentId":1}, {"id":51,"code":"code51","name":"name51","addr":"address51","_parentId":1}, {"id":52,"code":"code52","name":"name52","addr":"address52","_parentId":1}, {"id":61,"code":"code61","name":"name61","addr":"address61","_parentId":1}, {"id":62,"code":"code62","name":"name62","addr":"address62","_parentId":1}, {"id":71,"code":"code71","name":"name71","addr":"address71","_parentId":1}, {"id":72,"code":"code72","name":"name72","addr":"address72","_parentId":1}, {"id":81,"code":"code81","name":"name81","addr":"address81","_parentId":1}, {"id":82,"code":"code82","name":"name82","addr":"address82","_parentId":1}, {"id":91,"code":"code91","name":"name91","addr":"address91","_parentId":1}, {"id":92,"code":"code92","name":"name92","addr":"address92","_parentId":1}, {"id":110,"code":"code110","name":"name110","addr":"address110","_parentId":1}, {"id":120,"code":"code120","name":"name120","addr":"address120","_parentId":1} ]}
The places marked in red are particularly useful. I followed his approach and made one myself, but there was always no data. Later I discovered a problem,
{"total":29,"rows":[ {"Id":25,"Ids":25,"name":"直辖市","state":"closed",<SPAN style="COLOR: #ff0000">"_parentId":2</SPAN>,"orderId":2}, {"Id":44,"Ids":44,"name":"黑龙江","state":"closed","_parentId":2,"orderId":110}, {"Id":45,"Ids":45,"name":"吉林","state":"closed","_parentId":2,"orderId":1}, {"Id":46,"Ids":46,"name":"辽宁","state":"closed","_parentId":2,"orderId":3}, {"Id":47,"Ids":47,"name":"河北","state":"closed","_parentId":2,"orderId":4}, {"Id":48,"Ids":48,"name":"内蒙古","state":"closed","_parentId":2,"orderId":111}, {"Id":49,"Ids":49,"name":"山西","state":"closed","_parentId":2,"orderId":6}, {"Id":50,"Ids":50,"name":"江西","state":"closed","_parentId":2,"orderId":11}, {"Id":51,"Ids":51,"name":"山东","state":"closed","_parentId":2,"orderId":12}, {"Id":52,"Ids":52,"name":"台湾","state":"closed","_parentId":2,"orderId":13}, {"Id":53,"Ids":53,"name":"甘肃","state":"closed","_parentId":2,"orderId":15}, {"Id":54,"Ids":54,"name":"宁夏","state":"closed","_parentId":2,"orderId":16}, {"Id":55,"Ids":55,"name":"青海","state":"closed","_parentId":2,"orderId":17}, {"Id":56,"Ids":56,"name":"新疆","state":"closed","_parentId":2,"orderId":18}, {"Id":57,"Ids":57,"name":"云南","state":"closed","_parentId":2,"orderId":19}]}
The above data does not have a root node, so there is nothing on the page. . . . . My data only has parentId, so the page is blank.
This problem has been fixed, but a new problem has appeared. At first, my method was to load all the data directly and click on the node to expand it. There was no problem. However, loading all the data together not only consumes performance, but is also extremely slow.
So I think of asynchronous loading. I went to the official website for a long time and looked at it. The official website provided a lot of events, such as expansion triggers, etc., but none of them were on point.
I use Firefox to monitor that the data is loaded every time, and the correct JSON is returned
{"total":29,"rows":[ {"Id":25,"Ids":25,"name":"直辖市","state":"closed",<SPAN style="COLOR: #ff0000">"_parentId":2</SPAN>,"orderId":2}, {"Id":44,"Ids":44,"name":"黑龙江","state":"closed","_parentId":2,"orderId":110},
. . . .
After I repeatedly compared the tree with this treegrid. Finally, I found that treegrid has total and rows on the requested data, but tree does not.
Could it be that total and rows were causing trouble? I quickly deleted this, and sure enough the data came out
Everyone can search on Baidu, there are various opinions.
The last summary: When using easyui treegrid, please note:
1. There must be a root node;
2. The data format loaded by the parent node and the data loaded by the child node The format is different.
The parent node requires total and rows, while the child node needs the same data format as the tree when loading. I have only built a two-level one so far, and I haven’t tried the multi-level one yet. Save this article for later reference.
For more articles related to EASYUI TREEGRID asynchronous loading data implementation methods, please pay attention to the PHP Chinese website!