jqGrid treegrid addJSONData在打开任何节点后将新数据附加到旧数据

时间:2014-03-03 21:29:13

标签: jqgrid treenode treegrid

我在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中有数据也没有返回任何内容,是在节点打开或之前触及的条件下。

有人可以确认这是一个错误/另一种解决方法吗?

0 个答案:

没有答案