我在jqgrid中有一个treeGrid,使用本地数据来填充树。我用来向树调用新数据的方法是通过调用addJSONData来完成的。
树数据将根据某个函数进行刷新,例如在我的情况下,当下拉列表值更改时,treeGrid将重新绘制。
此时,一切都运行良好,我可以很好地将新数据重新加载到树中。 这就是问题所在,当我打开一个treeGrid的节点时,一旦我打开节点,即使在关闭它之后,通过重新加载数据,它将APPEND到旧数据而不是在里面加载一个全新的数据数组。
在mygrid [0] .addJSONData(mydata)下,查看mygrid [0] .rows它给出了HTMLCollection [7],其中第一行是标题,6行是数据;现在打开一个节点并重新加载后,它没有清除数据,而是附加到现有的 - mygrid [0] .rows成为HTMLCollection [13]。
mygrid.jqGrid({
datatype: "jsonstring",
datastr: mydata,
colNames: gridColName,
colModel: colMol,
height: '100%',
rowNum: 10000,
sortname: keyFieldName,
treeGrid: true,
treeGridModel: 'adjacency', //'nested',
ExpandColumn: keyFieldName,
jsonReader: { repeatitems: false },
onSelectRow: function (id) {
var selectedRow = $(this).getLocalRow(id);
if (clickModel !== 'Bottom Level'){
ModifyClassificationByRow(selectedRow);
} else { //update values only if NOT BottomLevel
var parentVal = selectedRow[parentName];
if (output.DataLibData.Data.DeepestLevel === parentVal){
ModifyClassificationByRow(selectedRow);
}
}
}
});
mygrid[0].addJSONData(mydata);
我尝试了不同的其他东西,例如mygrid.jqGrid('clearGridData');
来清除addJSONData之前的数据,但这会清空整个网格,即使mydata中有数据也没有返回任何内容,是在节点打开或之前触及的条件下。
有人可以确认这是一个错误/另一种解决方法吗?