Telerik网格在删除命令后显示空列

时间:2012-08-02 20:06:29

标签: ajax asp.net-mvc-3 asp.net-ajax telerik

我使用Telerik MVC Extensions Grid控件,使用AJAX绑定,并运行删除命令。删除按预期工作,网格更新,以便它不显示已删除的行。

但是,删除其中一个网格列(第一个)后显示为空。第二列也有区别 - 'false'而不是未选中的框。 任何想法为什么,以及如何解决这个问题?

我可以刷新屏幕,并修复视图。但这是一个沉重的页面,我宁愿不做第二次刷新。

Delete first row:

删除后,第一列显示为空: Now first column is empty:

我的网格:

Html.Telerik()
    .Grid(Model)
    .Name("scenarioGrid")
    .DataBinding(dataBinding => dataBinding.Ajax()
                                    .Delete("Delete", "Scenario"))
    .DataKeys(keys => keys.Add(c => c.Id))
    .Columns(columns =>
        {
            columns.Template(o => Html.ActionLink(o.Name, "Index", new {id = o.Name})).Title("Scenario")
                .FooterTemplate(@<text>Total @Model.Count() </text>);
            columns.Bound(o => o.IsLocked);
            columns.Bound(o => o.ContractMonth);
            columns.Bound(o => o.CreateDate);
            columns.Command(commands => commands.Delete().ButtonType(GridButtonType.Image)).Title("Delete");
        }
    )
    .Sortable()
    .Scrollable(scroll => scroll.Height(200))
    .ClientEvents(events => events.OnDelete("onDelete").OnComplete("afterDelete"))

2 个答案:

答案 0 :(得分:1)

您不应将columns.Template与Ajax绑定一起使用。它适用于服务器端绑定网格。你应该使用

columns.Bound(o => 0.whatever).ClientTemplate("convert your link to a string here");

答案 1 :(得分:1)

看起来您正在使用服务器绑定来加载网格,但是使用ajax绑定来更新它。 columns.Template用于服务器绑定。您应该使用ClientTemplate进行ajax绑定。