jQuery - 加载jqGrid - 带有数组数据的TreeGrid

时间:2012-04-21 12:20:17

标签: jquery arrays jqgrid treegrid

我正在尝试使用数组数据加载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"}]

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您会找到问题的答案here

你不应该使用速度慢的addRowData,并且大多使用错误。对于父节点,您应该使用parent: "null"parent: null。此外,您应该在TreeGrid的输入数据中包含levelisLeaf所需的其他信息。所有节点都需要loaded:true来保存节点本地。

在输入中使用正确的项目顺序非常重要。订单应该与完全展开的树中的项目顺序相对应。所以所有的孩子都应该跟随父母。

您应该从colModelidvisible个未知属性中删除。您可以在the documentation中找到支持的属性列表。