1

Telerik MVC 拡張機能で Ajax サポートのページング ネスト グリッドを作成しようとしています。ブラウズでネストされたグリッドをレンダリングしました。行のジャンルを展開して、GenreId でフィルター処理された関連するアルバムを表示できますが、このネストされたグリッドに Ajax を使用すると、グリッド ページングで機能しません。プロジェクトをアップロードし、View と Controller に関するコードを投稿しました。

ajaxを使用しないと、グリッドは正常に動作しますが、ブラウズをリロードすると正しく展開されません。展開された行の状態を維持するにはどうすればよいですか?

私はどんな助けにも感謝しています。

私のプロジェクト: http://share.vnn.vn/dl.php/11718146

私の見解:

@{
    ViewBag.Title = "Home Page";
    Layout = @"~\Views\Shared\_Layout.cshtml";
}

@( Html.Telerik().Grid<MvcMusicCodeFirsr.Models.Genre>(@Model)
    .Name("personGrid")
    .DataKeys(keys => keys.Add(k => k.GenreId))
    .DataBinding(d => d.Ajax().Update( "_Update", "Home" )
    )
   // .Editable(editing => editing.Mode(GridEditMode.PopUp))
    .Columns(c =>
    {
        c.Bound(m => m.Name).Width(150);
        c.Bound(m => m.Description).Width(150);
        //c.Bound(m => m.Birthdate);
        c.Command(commands =>
        {
            commands.Edit();
        }).Width(80);
    })
    .DetailView(detailView => 
        detailView.Template(
        @<text>
            @(Html.Telerik().Grid<MvcMusicCodeFirsr.Models.Album>(item.Albums)
                    .Name("Albums_" + item.GenreId)
                    .DataBinding(d => d.Ajax())
                    .Columns(columns =>
                    {
                        columns.Bound(o => o.Title).Width(101);
                        columns.Bound(o => o.Price).Width(140);
                    })
                    .Pageable()
                    .Sortable()
                    .Filterable()
            )

        </text>
        )
        .ClientTemplate(
                    Html.Telerik().Grid<MvcMusicCodeFirsr.Models.Album>()

                                  .Name("Albums_<#=GenreId#>")
                                  .DataBinding(d => d.Ajax())
                                  .Footer(false)
                                  .ClientEvents(events => events.OnDataBinding("detailGrid_dataBinding"))
                                  .ToHtmlString()
        ))

                    .Sortable()
                    .Pageable()


    )


)

<script type="text/javascript">
    function detailGrid_dataBinding(e) {
        var grid = $(this).data("tGrid"),
            masterRow = $(this).closest("tr.t-detail-row").prev(),
            dataItem = $("#Grid").data("tGrid").dataItem(masterRow);

        grid.dataBind(dataItem.Albums);

        e.preventDefault();

    }
</script>

私のコントローラー:

    MusicStoreEntities db = new MusicStoreEntities();
    public ActionResult Index()
    {
        return View(db.Genres.ToList());
    }

    [GridAction]
    public ActionResult _Select()
    {
        return View(new GridModel ( db.Genres.ToList()));
    }

    [GridAction]
    public ActionResult _Update()
    {
        return View(new GridModel { Data = db.Genres.ToList() });
    }
4

1 に答える 1

0

ネストされたグリッドの ajax パディングを示す例を次に示します: http://demos.telerik.com/aspnet-mvc/grid/hierarchyajax

于 2012-12-22T08:22:31.327 に答える