我在项目中使用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来演示此问题。重现它:
在第二级选择一行,然后单击添加子项。将根据上面的代码添加新行。 “按钮添加”消息显示在按钮下方。
选择父级,然后单击“显示子级”按钮。所选行的子项数显示在按钮下方。
插入行后,我也试过了treegrid的“acceptChanges”,但它仍然无法解决问题。
UPDATE :根据@ saigitha-vijay的回答,看起来使用append方法正确更新基础模型(jsFiddle),但它总是将新行添加为最后一个子项。无论如何在特定位置添加新行?
答案 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
});