私は次のようにMVC剣道グリッドを持っています。デフォルトのページングで問題なく動作しています。
今、私はカスタムページングをしたいと思っています。コントローラー アクションでは、現在のページ インデックスを知る必要があります。また、グリッドの「合計」数を設定する必要があります。[実際のデータ ソースには、データベースに 100 のレコードがある場合でも、一度に 2 つのレコードしかありません。そのため、グリッドは「total」属性を使用してデータベース内のレコードの総数を認識している必要があります。]
クエリは、データベースから一度に 2 つのレコードのみを返す必要があります。
Kendo Grid の MVC ラッパーを使用して、このカスタム サーバー ページングを行うにはどうすればよいでしょうか?
@using (Html.BeginForm())
{
@(Html.Kendo().Grid<KendoUIMvcSample.Models.Sample>()
.Name("ssgrid222")
.Columns(columns => {
columns.Bound(p => p.SampleDescription).Filterable(false).Width(100);
columns.Bound(p => p.SampleCode).Filterable(false).Width(100);
columns.Bound(p => p.SampleItems).Filterable(false).Width(100);
})
.AutoBind(false)
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(2)
.Read(read => read.Action("Orders_Read", "Sample")
)
)
)
}
コントローラ
public ActionResult Orders_Read([DataSourceRequest]DataSourceRequest request)
{
int currentPageNumber = request.Page;
return Json(GetOrders().ToDataSourceResult(request));
}