3

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

4

1 に答える 1