我正在使用ejtreegrid来显示和编辑我的分层数据。 我也使用actionComplete事件将数据发送到我的asp.net控制器来保存数据。 这里是我的控制器的代码:
public int AddFamille(string DESIGNATION)
{
FAMILLE f = new FAMILLE()
{
FA_DESIGNATION = DESIGNATION,
FA_ID_PARENT = 1};
ctx.FAMILLES.Add(f);
ctx.SaveChanges();
return f.ID_FAMILLE;
}
它会返回新添加的实体的 ID ,我已经检查过了,这没关系。
在客户端这里是ajax调用
function OnactionComplete(args) {
if (args.requestType == "addNewRow") {
var item = args.addedRow;
$.ajax({
type: "POST",
url: '/Admin/AddFamille?`DESIGNATION='+item.DESIGNATION,`
success: function (data) {
args.addedRow.ID= data;
}
});
}
}
正如您所看到的,我正在尝试使用来自服务器的新ID替换添加的项ID,但不幸的是它没有效果。
欢迎任何想法。 感谢
答案 0 :(得分:0)
通过使用“refreshRow”公共方法,我们可以刷新TreeGrid中的特定行。
请找到以下代码示例:
function actionComplete(eventArgs) {
var treeObj = this,
//To get the index of newly added row
addedRow = treeObj.model.selectedItem;
if (eventArgs.requestType === 'addNewRow') {
//Newly Added Record is obtained here , which can be updated to database
var addedRecord = eventArgs.addedRow;
$.ajax({
type: "POST",
data: { Name: addedRecord.TaskName },
dataType: "json",
url: "/TreeGrid/Add",//Add is Server side method
success: function (result) {
addedRow.TaskId = addedRow.item.TaskId = result;
//To refresh the newly added row
treeObj.refreshRow(treeObj.model.updatedRecords.indexOf(addedRow));
},
});
}
}
请从以下位置找到样本
此致
Syncfusion团队