我使用删除命令设置了一个Kendo网格。
按下删除按钮时,永远不会触发删除操作。
这是我的代码:
观点:
@(Html.Kendo().Grid<portal.Models.UserVisitor>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(v => v.visitorName).Filterable(false).Title("Visitors");
columns.Command(command => command.Destroy());
})
.Sortable()
.Scrollable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Batch(true)
.Model(model =>
{
model.Id(v => v.fkVisitorId);
model.Field(v => v.visitorName).Editable(false);
})
.PageSize(20)
.Read(read => read.Action("Visitors_Read", "Visitor"))
.Destroy(update => update.Action("Visitors_Delete", "Visitor"))
)
.Resizable(resize => resize.Columns(true))
)
控制者访客:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Visitors_Delete([DataSourceRequest] DataSourceRequest request,UserVisitor model)
{
return Json(ModelState.ToDataSourceResult());
}
有谁知道这有什么问题?
答案 0 :(得分:4)
如果希望Destroy命令立即命中服务器,则需要使用InLine编辑模式:
@(Html.Kendo().Grid<portal.Models.UserVisitor>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(v => v.visitorName).Filterable(false).Title("Visitors");
columns.Command(command => command.Destroy());
})
.Sortable()
.Scrollable()
.Filterable()
.Editable(editable => editable.Mode(GridEditMode.InLine))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Batch(true)
.Model(model =>
{
model.Id(v => v.fkVisitorId);
model.Field(v => v.visitorName).Editable(false);
})
.PageSize(20)
.Read(read => read.Action("Visitors_Read", "Visitor"))
.Destroy(update => update.Action("Visitors_Delete", "Visitor"))
)
.Resizable(resize => resize.Columns(true))
)
答案 1 :(得分:3)
尝试明确定义网格应采取的操作。
.Destroy(update => update.Action("Visitors_Delete", "Visitor")).Type(HttpVerbs.Post))