EasyUI Treegrid - 插入方法不更新子集合

时间:2013-07-06 19:07:44

标签: jquery treegrid jquery-easyui

我在项目中使用jQuery EasyUI treegrid

我的树上装有一些初始数据。之后,当用户单击“添加”按钮时,我需要在树上插入新行。添加点击处理程序具有此代码,并且按预期工作:

var row = $treeGrid.treegrid('getSelected');

if (row) {
    var obj = {
        id: "x" + ++maxId,
        code: "x" + maxId,
        amount: 2
    };
    $treeGrid.treegrid('insert', {
            after: row.id,
            data: obj
        });

    $("#txtResult").text("Added a new row: " + obj.id);
}

然而,当我检查行的子项(添加了新子项)时,它不包括新添加的行。

我已设置jsFiddle来演示此问题。重现它:

  1. 在第二级选择一行,然后单击添加子项。将根据上面的代码添加新行。 “按钮添加”消息显示在按钮下方。

  2. 选择父级,然后单击“显示子级”按钮。所选行的子项数显示在按钮下方。

  3. 插入行后,我也试过了treegrid的“acceptChanges”,但它仍然无法解决问题。

    UPDATE :根据@ saigitha-vijay的回答,看起来使用append方法正确更新基础模型(jsFiddle),但它总是将新行添加为最后一个子项。无论如何在特定位置添加新行?

1 个答案:

答案 0 :(得分:0)

而不是'insert'使用'append'。在这种方法中,你也可以传递父ID。

例如,

$('#tt').treegrid('append',{
parent: node.id,  // the node has a 'id' value that defined through 'idField' property
data: [{
    id: '073',
    name: 'name73'
}]
});

我修改了你的代码,(工作)

 var obj = [{
            id: "x" + ++maxId,
            code: "x" + maxId,
            amount: 2
        }];

        $treeGrid.treegrid('append', {
            parent: row.id,
            data: obj
        });