我正在使用带有jqGrid的treegrid,对这个插件来说还是个新手。我无法使treegrid功能正常工作。我第一次单击展开按钮时工作正常。下次,当我点击崩溃时,它给了我javascript错误:
$t.p.data[pos] is undefined
这是在jqGrid的setTreeNode方法中。
我希望Oleg或其他人会帮助或给我一个指针。
我的配置如下:
var grid = $("#grid").jqGrid({
treeGrid: true,
treeGridModel: 'adjacency',
ExpandColumn: 'businessAreaName',
ExpandColClick : true,
url:'agileProgramme/records.do',
datatype: 'json',
mtype: 'GET',
colNames:['Id'
, 'Business Area'
, 'Investment'
, 'Org'
, 'Goal'
],
colModel:[
/*00*/ {name:'agileProgrammeId',index:'agileProgrammeId', width:0, editable:false,hidden:true},
/*01*/ {name:'businessAreaName',index:'businessAreaName', width:160, editable:false},
/*02*/ {name:'programmeName',index:'programmeName', width:150, editable:false, classes:'link'},
/*03*/ {name:'org',index:'org', width:50, editable:false, classes:'orgHierarchy', sortable : false},
/*04*/ {name:'goal',index:'goal', width:70, editable:false}
],
treeReader : {
level_field: "level",
parent_id_field: "parent",
leaf_field: "leaf",
expanded_field: "expanded"
},
autowidth: true,
height: 240,
pager: '#pager',
sortname: 'id',
sortorder: "asc",
toolbar:[true,"top"],
caption:"TableGridDemo",
emptyrecords: "Empty records",
loadonce: true,
jsonReader : {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
cell: "cell",
id: "agileProgrammeId"
}
});
扩展列时返回的数据如下所示。
{
"page":"1",
"total":"1",
"records":"1",
"rows":[
{
"agileProgrammeId":2,
"businessAreaName":"child",
"programmeName":"childSomething",
"goal":null,
"parent":1,
"level":"1",
"leaf":true,
"expanded":false
}
]
}
这是最初加载的数据。
{
"page":"1",
"total":"1",
"records":"1",
"rows":[
{
"agileProgrammeId":1,
"businessAreaName":"parent",
"programmeName":"parentsomething",
"goal":null,
"parent":null,
"level":"0",
"leaf":false,
"expanded":false
}
]
}
答案 0 :(得分:2)
我使用您发布的数据调试了网格,并发现原因为the two lines of code,loadonce: true
时删除了本地数据。
在“标准”网格的情况下,TreeGrid以与loadonce: true
相同的方式在本地保存以前加载的数据。因此,对于TreeGrid,loadonce: true
的设置没有任何意义。此外,您如何知道在TreeGrid的情况下设置loadonce: true
会产生副作用。
因此,要解决您的问题,您只需从TreeGrid定义中删除loadonce: true
。
更新:我刚刚发布the suggestion以消除您现在遇到的问题。