2

AJAX バインディングを使用して Telerik MVC 拡張グリッド コントロールを使用し、delete コマンドを実行しています。削除は意図したとおりに機能し、削除された行が表示されないようにグリッドが更新されます。

ただし、グリッド列の 1 つ (最初の列) を削除すると、空が表示されます。2 番目の列にも違いがあります。チェックされていないボックスではなく「false」です。その理由と、それを修正するにはどうすればよいですか?

画面を更新すると、ビューが修正されます。しかし、これは重いページなので、2 回目の更新はしたくありません。

最初の行を削除:

削除後、最初の列は空で表示されます。 最初の列は空です:

私のグリッド:

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"))
4

2 に答える 2

1

columns.TemplateAjax バインディングでは使用しないでください。これは、サーバー側のバインドされたグリッドを対象としています。使用する必要があります

columns.Bound(o => 0.whatever).ClientTemplate("convert your link to a string here");
于 2012-08-02T20:38:50.013 に答える
1

サーバーバインディングを使用してグリッドをロードしているようですが、ajaxバインディングを使用して更新しているようです。サーバーのバインドには、columns.Template が使用されます。ajax バインディングには ClientTemplate を使用する必要があります。

于 2012-08-02T20:41:19.197 に答える