Telerik MVC网格自定义命令更新网格

本文关键字:网格 更新 命令 自定义 Telerik MVC | 更新日期: 2023-09-27 18:21:33

如何使自定义命令更新telerik网格?例如,下面我有一个按钮,通过自定义命令按钮将行的姓氏更新为Peters。已调用操作方法,但不会更新网格。

@Html.Telerik()
    .Grid(Model)
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(o => o.FirstName);
        columns.Bound(o => o.LastName);
        columns.Bound(o => o.Phone);
        columns.Bound(o => o.State);
        columns.Command(commands => commands.Custom("Stuff")
                                        .Text("Change Name")
                                        .DataRouteValues(route => route.Add(o => o.LastName)
                                                            .RouteKey("lastName"))
                                        .Ajax(true)
                                        .Action("Stuff", "Home"));
    })
    .DataBinding(dataBinding =>
    {
        dataBinding.Server().Select("Index", "Home", new { ajax = ViewData["ajax"] });
        dataBinding.Ajax().Select("_Index", "Home").Enabled((bool)ViewData["ajax"]);
    })
    .Scrollable(scrolling => scrolling.Enabled((bool)ViewData["scrolling"]))
    .Sortable(sorting => sorting.Enabled((bool)ViewData["sorting"]))
    .Pageable(paging => paging.Enabled((bool)ViewData["paging"]))
    .Filterable(filtering => filtering.Enabled((bool)ViewData["filtering"]))
    .Groupable(grouping => grouping.Enabled((bool)ViewData["grouping"]))
    .Footer((bool)ViewData["showFooter"]);

动作方式:

[GridAction]
public ActionResult Stuff(string lastName)
{
    IEnumerable<Person> persons = GetPersons();
    persons.First(p => p.LastName == lastName).LastName = "Peters";

    return View(new GridModel(persons));
}

Telerik MVC网格自定义命令更新网格

添加到ClientEvents网格。

.ClientEvents(events => events.OnComplete("onComplete"))

如果操作为Stuff:,则添加javascript以重建网格

@{ Html.Telerik().ScriptRegistrar().OnDocumentReady(@<text> 
function onComplete(e) {
   if (e.name == "Stuff") {
        var $grid = $("#Grid").data("tGrid");
        $grid.rebind();
   }
}
</text>); }