1

我在一个项目中使用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 级选择一行,然后单击添加子项。将根据上面的代码添加一个新行。按钮下方会显示“已添加行”消息。

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

插入行后,我也尝试了treegrid的“acceptChanges”,但仍然没有解决问题。

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

4

1 回答 1

0

而不是在“插入”上使用“附加”。在这种方法中,您也可以传递父 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
        });
于 2013-07-09T06:21:43.593 回答