【发布时间】:2013-01-21 10:26:44
【问题描述】:
我使用 Kendo 网格内联编辑模式,编辑后我需要刷新 DropDownList 的数据源。
原因是我的 KendoGrid 应该添加和编辑我的 DropDownList 使用的数据。 我在 KendoGrid 上编辑数据没有问题,在下面的代码的帮助下,我刷新了 DropDownList 上的数据。
var dropDownList = $("#Domains").data("kendoDropDownList");
dropDownList.dataSource.read();
#Domains 是我的 DropDownList 的 ID
即使我编辑已在 DropDownList 上选择的数据,一切正常。 但问题是在 KendoGrid(内联模式)中添加新项目并同时编辑在 DropDownList 上选择的旧项目之一。
在这种情况下,Kendo 不会编辑项目,而是将已编辑的项目作为新项目添加到数据源中,我们将旧项目和已编辑项目作为两个单独的项目。 我不知道我是否正确地传达了情况。
我使用MVC,我定义数据源的方式是这样的:
.DataSource(dataSource => dataSource
.Ajax()
.Events(events => { events.Error("result_handler"); })
.Model(model => model.Id(p => p.Id))
.Create(create => create.Action("AddDomain", "Service", new { customerID = ViewBag.CustomerId }))
.Read(read => read.Action("GetDomainListForGrid", "Service", new { customerID = ViewBag.CustomerId }))
.Update(update => update.Action("EditDomain", "Service"))
.Destroy(destroy => destroy.Action("DeleteDomain", "Service"))
)
如你所见,我像上面一样设置了 model.Id。
【问题讨论】:
-
对于这个更新的条目,您在模型中使用什么作为
id? -
我最后用我的答案更新了我的文字。
-
KendoUI 根据 id 的值决定创建和更新,这就是为什么我问你在使用什么。您是否检查过旧记录的
id是否确实正确(添加新项目之前与之后相同)? -
最简单的方法是在网格中定义一列来显示id。
-
好吧,现在我检查了一下,它只是将“0”赋予了 ID。我该如何更新?我是否也需要为网格调用“.dataSource.read()”?
标签: asp.net-mvc kendo-ui selected selectedvalue