KendoUI
読み取りに ajax バインディングを使用する ASP.NET MVC アプリ用の基本的なグリッドがあります。グリッド上のフォームを使用して、グリッドに表示する必要があるデータを選択できるように、これを強化したいと思います。これは、名、姓、生年月日、顧客ソースなどの基本的なフィールドと検索ボタンを備えた標準的な検索フォームです。検索ボタンが押されたら、上で参照したフィールドを使用して検索モデルを渡すことにより、コントローラーから基準を満たすデータをグリッドに強制的に取得させたいと考えています。
検索フォームは、_CustomerSearch 部分ビューに含まれています。
OnDataBinding クライアント イベントを利用してパラメーター値を更新し、手動で Ajax 呼び出しを行ってデータを取得することで、Telerik MVC 拡張機能でこの種のことを以前に実装しました。KendoUI がこれと同じように動作するようには見えません。
意見
@Html.Partial("_CustomerSearch", Model)
<hr>
@(Html.Kendo().Grid<ViewModels.CustomerModel>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.Id).Hidden(true);
columns.Bound(p => p.FirstName);
columns.Bound(p => p.LastName);
columns.Bound(p => p.DateOfBirth).Format("{0:MM/dd/yyyy}");
columns.Bound(p => p.IsActive);
})
.Scrollable()
.Filterable()
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("_Search", "Customer"))
)
)
コントローラ
public ActionResult _Search([DataSourceRequest]DataSourceRequest request)
{
return Json(DataService.GetCustomers2().ToDataSourceResult(request));
}
私はコントローラがこのように見えると想像していますが、このように実装されているものの例を見つけることができません。これは私が助けを必要としているものです.
public ActionResult _Search([DataSourceRequest]DataSourceRequest request, CustomerSearchModel customerSearchModel)
{
return Json(DataService.GetCustomers2(customerSearchModel)
.ToDataSourceResult(request));
}