我正在尝试使用数组数据加载TreeGrid(jqGrid)。但不知何故层次结构没有出现。数据仅出现在扁平结构中。
代码:
$("#list").jqGrid({
treeGrid: true,
treeGridModel: 'adjacency',
ExpandColumn: 'label',
ExpandColClick: true,
datatype: 'local',
colNames:['Parent','Org','cd'],
colModel:[
{name:'parent',id:'parent',index:'parent', width:250, hidden: true,
align: 'left', sortable: false, classes: 'indeling', title: false },
{name:'label',id:'label',index:'label', width:250,align: 'left',
sortable: false, classes: 'indeling', title: false, visible: false},
{name:'cd',id:'cd',index:'cd', width:100,align: 'left', sortable: false,
classes: 'indeling', title: false,visible: false }
],
rowNum: 20000,
viewrecords: true,
height: "100%",
treeIcons: { leaf: 'ui-icon-document-b' },
hoverrows: false
});
然后我将数组中的行添加到网格中:
$('#list').jqGrid('addRowData',0,array[0]);
$('#list').jqGrid('addRowData',1,array[1]);
数组结构:
array=[{parent:"",label:"1",cd:"32"},{parent:"1",label:"2",cd:"42"}]
任何人都可以帮忙吗?
答案 0 :(得分:0)
您会找到问题的答案here。
你不应该使用速度慢的addRowData
,并且大多使用错误。对于父节点,您应该使用parent: "null"
或parent: null
。此外,您应该在TreeGrid的输入数据中包含level
,isLeaf
所需的其他信息。所有节点都需要loaded:true
来保存节点本地。
在输入中使用正确的项目顺序非常重要。订单应该与完全展开的树中的项目顺序相对应。所以所有的孩子都应该跟随父母。
您应该从colModel
和id
等visible
个未知属性中删除。您可以在the documentation中找到支持的属性列表。