当用户点击删除按钮时,我有一个kendo网格 控制器必须进行一些操作。根据这项行动, 数据不会被删除然后应显示“你不能删除此记录”这样的消息 怎么做?
@(Html.Kendo().Grid<teknik.Models.Magaza_Viewmodel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.ID).Visible(false);
columns.Bound(p => p.NAME);
columns.Command(command => {
command.Edit();
command.Destroy();
});
})
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("TmpMagaza").CreateAt(GridInsertRowPosition.Top))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Model(model => model.Id(p => p.ID) )
.Create(update => update.Action("Create", "Home"))
.Read(read => read.Action("Read", "Home"))
.Update(update => update.Action("Update", "Home"))
.Destroy(update => update.Action("Destroy", "Home"))
)
)
controller Destroy Action:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Destroy([DataSourceRequest] DataSourceRequest request, Magaza_Viewmodel magaza)
{
if (magaza != null)
{
if (!valid) {
// record not deleted, show message
}
else
{
magazaModel.Destroy(magaza);
}
}
return Json(new[] { magaza }.ToDataSourceResult(request, ModelState));
}
答案 0 :(得分:0)
更好的方法是隐藏用户无权访问的命令。我会创建另一个列,但然后使用客户端模板来确定列中的内容。客户端模板允许您将javascript放在&#39;#&#39;字符,这是你可以包含条件语句的地方。然后,html可以调用Destroy命令将调用的相同操作。
columns.Bound(p => p.ID).Visible(false);
columns.Bound(p => p.NAME);
columns.Command(command =>command.Edit());
columns.Bound(p =>p.ID).ClientTemplate("#if(condition){#html1#}#");