【发布时间】:2014-05-14 23:59:03
【问题描述】:
由于某些原因,我不能使用 Kendo 网格的 MVC 包装器。所以我正在尝试在 JavaScript 上构建剑道网格。
尝试在网格上更新或创建记录时存在 2 个主要问题。
1-) 网格上的所有操作(销毁、更新、创建)只是由 Kendo 网格的数据源创建操作。例如更新一条记录后,数据源向该 URL 发送数据多次(列数):
http://localhost:63186/Administrator/DefinitionDetailCreate。它应该将值传递给:
http://localhost:63186/Administrator/DefinitionDetailUpdate
2-)操作后(更新或创建)网格将所有数据发送到操作方法,而不是新的或更新的数据。所以它发送请求网格上的列数
JavaScript:
var dataItem = this.dataItem($(e.target).closest("tr"));
var code = dataItem.CODE;
// alert(code);
var crudServiceBaseUrl = "/Administrator/",
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: '@Url.Action("DefinitionDetailRead", "Administrator")',
data: {DefinitionCode: code},
dataType: "json"
},
update: {
url: '@Url.Action("DefinitionDetailUpdate", "Administrator")',
type: "POST",
dataType: "text"
},
destroy: {
url: '@Url.Action("DefinitionDetailDelete", "Administrator")',
type: "POST",
dataType: "text",
},
create: {
url: '@Url.Action("DefinitionDetailCreate", "Administrator")',
type: "POST",
dataType: "text",
}
},
// batch: true,
pageSize: 9,
schema: {
data: "Data",
model: {
ID: "ID",
fields: {
ID: {editable: false, nullable: true},
DESCRIPTION: {validation: {required: true}}
}
}
}
});
$("#detailsGrid").kendoGrid({
dataSource: dataSource,
attributes: {style: "padding-left: 0px; font-size: 14px"},
pageable: {refresh: false, pageSizes: false, buttonCount: 5},
toolbar: ["create"],
columns: [
{field: "DESCRIPTION", title: "DESCRIPTION", width: "200px"},
{command: ["edit", "destroy"], title: "Operasyon", width: "100px"}],
editable: "popup"
});
控制器:
[HttpPost]
public ActionResult DefinitionDetailUpdate(Guid ID,Guid REFERENCEID,string DESCRIPTION)
{
return null;
}
[HttpPost]
public ActionResult DefinitionDetailCreate(Guid ID, Guid REFERENCEID, string DESCRIPTION)
{
return null;
}
【问题讨论】:
-
如果您不能使用 MVC 包装器,那么您缺少的东西。您是否已将 Kendo UI 命名空间添加到视图文件夹中的 Web Config?或者在你的视图顶部扔一个
@using Kendo.Mvc.UI
标签: javascript jquery ajax asp.net-mvc kendo-ui