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() });
}