Grid.MVC ベースのリストを使用して、並べ替え可能、フィルター可能、ページ化されたリストを作成できます。
問題は、特に Grid.MVC のドキュメントで、フィルタリングされたものの「カウント」を出力するものを見つけることができないようです。潜在的にいくつかのjQueryコードを介したクライアント側のソリューションが必要になる可能性があると考えましたが、もっと簡単なものがあることを望んでいました.
@using GridMvc.Html
@model IEnumerable<Sample.Cases>
@{
ViewBag.Title = "Case Browse List";
}
<h2>Case Browse List</h2>
<p>
@Html.ActionLink("Add New Participant", "Create")
</p>
<div>
@Html.Grid(Model).Columns(columns =>
{
columns.Add().Encoded(false).Sanitized(false).SetWidth(30).RenderValueAs(model => @<b>@Html.ActionLink("Select", "Details", new { id = model.ID })</b>);
columns.Add(model => model.ID).Titled("ID");
columns.Add(model => model.FirstName).Titled("First Name");
columns.Add(model => model.MiddleName).Titled("Middle Name");
columns.Add(model => model.LastName).Titled("LastName");
columns.Add(model => model.LKPSuffixes.SuffixDescription).Titled("Suffix");
columns.Add(model => model.LKPCaseStatuses.CaseStatusDescription).Titled("Case Status");
columns.Add(model => model.CaseStatusDate).Titled("Case Status Date");
}).WithPaging(10).Sortable(true).Filterable(true).WithMultipleFilters()
</div>
上記は私の見解です。非常に単純ですが、基本的には、このグリッドの下に、結果の合計数を示すフッターが必要なだけです。これはフィルター処理可能でページ分割されているため、表示された 10 個 (.WithPaging(10)) または列内のフィルターなしの合計だけでなく、すべてのレコードのカウントを取得する必要があります。
Grid.MVC には、次のようなサンプル プロジェクトがあります: http://gridmvc.azurewebsites.net/?grid-page=3
編集 - 理想的には、フッターに「57 エントリ中 1 から 10 を表示しています」のように表示するか、それが不可能な場合は、エントリの総数だけでも要件を満たすことができます。
GitHub でこのコードの一部を読む - 表示された行数または合計行数 (フィルタリング後) の属性がいくつかあるようです。
https://github.com/leniel/Grid.Mvc/blob/master/GridMvc/IGrid.cs