我定义了一个这样的kendo网格,并且在添加一行之后,以某种方式,我所做的第一次编辑单击(在发送到服务器之前)刚添加的行消失了,并且刷新它之后仍然存在。 有什么建议为什么会发生吗?
$("#actionGrid").kendoGrid({
scrollable: true,
height: "200px",
toolbar: [{name: "create", text: "Add"}],
editable: {
mode: "inline",
confirmation: false
},
columns: [
{ field: "order", title: "Order", width: 80 },
{ field: "action", title: "Action name"},
{ command: ["edit", "destroy"], width: 100 }
],
dataSource: {
schema: {
model: {
id:"taskId",
fields: {
taskId: { type:"number" },
order: { type: "number", validation: { min: 0 } },
action: {}
}
}
},
transport: {
read: {
dataType: "json",
type: "GET",
contentType: "application/json",
url: "action/readByPId?pId=" + pId
},
destroy: {
dataType:"json",
type:"POST",
contentType:"application/json",
url: "action/delete"
},
update: {
dataType: "json",
type: "POST",
contentType: "application/json",
url: "action/update"
},
create: {
dataType: "json",
type: "POST",
contentType: "application/json",
url: "action/update"
},
parameterMap:function parameterMap(options,type) {
if(type !== "read"){
return JSON.stringify(options);
}
}
},
sort: { field: "order", dir: "asc" }
}
});
答案 0 :(得分:1)
Kendo Grid有明确的规则。就像每次创建新记录一样,必须将更新的列表返回给客户端调用。请确保该更新记录是否正在返回。
如果您执行kendo UI的在线离线功能。然后按照以下示例进行演示。 https://demos.telerik.com/kendo-ui/grid/offline
您还没有提到数据通信方法。但是,如果您使用的是纯自定义方式,则必须在执行任何操作后更新数据源。请放入以下代码以获取新数据的更新。
$('#GridName').data('kendoGrid').dataSource.read(); <!-- first reload data source -->
$('#GridName').data('kendoGrid').refresh(); <!-- refresh current UI -->