私はグリッドを使用していません。MvcContrib Pager を使用しているだけです。ページャー用に作成された部分ビューがあり (結果の上部と下部に簡単に表示できるように)、次の@Html. Pager
ようにメソッドを呼び出します。
@Html.Pager(Model.PagedPrograms).First("<<").Last(">>").Next(">").Previous("<").Format("Item {0} - {1} of {2} ")
これは、すべてのパラメーターが QueryString を介してページに渡される限り、追加の微調整なしで機能します。
ページサイズを変更するオプションをユーザーに提供したいと思います(たとえば、20、50、すべて)...コントローラー側で簡単に処理でき、次のように書くことができます
@if (Model is Foo) {
@Html.ActionLink<SearchController>(sc => sc.Foo(var1, var2, var3, 20), "20")
@Html.ActionLink<SearchController>(sc => sc.Foo(var1, var2, var3, 50), "50");
@Html.ActionLink<SearchController>(sc => sc.Foo(var1, var2, var3, -1), "All");
}
しかし、この Pager を使用する可能性のあるモデル タイプごとにそれを行う必要があります。
IPagedProgramList
現在、Pager は取る(提供する)ビューからのみ呼び出され、IPagination<ProgramDTO> { get; }
そのインターフェイスを実装する 2 つの ViewModels (単純な検索と高度な検索) があります。しかし、このプロジェクトが成長し、そのインターフェイスを使用する新しい ViewModel を追加した場合、Pager の部分ビューを更新する必要があり、それは悪い / スケーリングしない / などです。