Kendo Grid条件销毁和显示消息

时间:2014-06-26 17:40:50

标签: asp.net-mvc razor kendo-grid kendo-asp.net-mvc

当用户点击删除按钮时,我有一个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));
    }

1 个答案:

答案 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#}#");