问题:
已知treeGride 1.44以及之前的版本中,用js的方式加载json数据来初始化一个treeGride可能会出现没有树结构的情况;
原因以及解决方法:
js初始化时候,treeField中指定的字段,一定要在columns中出现,如果没有出现,则不会有树形结构;
如下列子中:treeField:'name'和columns:[[
{title:'Task Name',field:'name',width:180}中字段name的对应;
其要求的数据格式如下:
[{ "id":1, "name":"C", "size":"", "date":"02/19/2010", "children":[{ "id":2, "name":"Program Files", "size":"120 MB", "date":"03/20/2010", "children":[{ "id":22, "name":"MySQL", "size":"", "date":"01/13/2010", "state":"closed", "children":[{ "id":221, "name":"my.ini", "size":"10 KB", "date":"02/26/2009" }] }] },{ "id":3, "name":"eclipse", "size":"", "date":"01/20/2010", "children":[{ "id":31, "name":"eclipse.exe", "size":"56 KB", "date":"05/19/2009" }] }] }]
用js方式初始化如下,其中数据data_data代表上面那种树形结构的数据:
$('#tt').treegrid({ data:data_data, idField:'id', treeField:'name', columns:[[ {title:'Task Name',field:'name',width:180}, {field:'persons',title:'Persons',width:60,align:'right'}, {field:'begin',title:'Begin Date',width:80}, {field:'end',title:'End Date',width:80} ]] });
<table id="tt" style="width:600px;height:400px"></table>