asp mvc razor +mvcgridを使用してアプリケーションを作成します。私の問題は次のとおりです。部分ビューを返す複数のアクションを含む1つのビューがあり、各部分ビューにはデータを表示するグリッドがあります。ページングと並べ替えをサポートするMVCcontribグリッドを使用しています。
私の見解(index.cshtml):
<div class="row-fluid">
<div id="formations" class="control-group">
@Html.Action("Formations")
</div>
<div id="pools" class="control-group">
@Html.Action("Pools")
</div>
<div id="zones" class="control-group">
@Html.Action("Zones")
</div>
フォーメーションアクション:
public ActionResult Formations(GridSortOptions sort, int? page, string filter = "all")
{
IPagination<StratUnitVo> pagination = ....
return PartialView("_Formations", pagination);
}
部分ビュー_Formations:
@Html.Grid(Model).Sort(ViewData["sort"] as GridSortOptions).Columns(col =>
{
col.For(p => Html.ActionLink(p.LongName, "EditFormation", "Stratigraphy", new { id = p.Id }, null).ToHtmlString()).Encode(false).Named(Locale.Name).SortColumnName("LongName");
col.For(p => p.FormCode).Named(Locale.Code);
col.For(p => p.ReferenceStratUnit.LongName).Named(Locale.ReferenceFormation);
}).Attributes(@class => "table table-condensed table-striped table-hover")
@if (Model.Count() > 0)
{
@Html.Raw(@Html.Pager(Model)));
}
他のアクションとビューは、上記のサンプルに最も似ています(モデルデータの違いだけです)。私の問題は:
- 1つのグリッド(例:フォーメーション)でナビゲーションページングをクリックすると、他のグリッド(プールとゾーン)に移動します。例:フォーメーショングリッドでページ2をクリックすると、別のグリッドもページ2に移動します。
- 1つのグリッドで列ヘッダーをクリックすると(つまり、データを並べ替えたい場合)、ページ全体が部分ビューに置き換えられます。私が欲しいのは、クリックしたグリッドだけがソートされていることです。
どうすれば修正できますか?
ありがとう!