我的 ASP.NET MVC 应用程序有一个基本网KendoUI
格,它使用 ajax 绑定进行读取。我想增强这一点,以便使用网格上方的表单来帮助选择应在网格中显示的数据。这是一个标准的搜索表单,包含基本字段,如名字、姓氏、出生日期、客户来源等,并带有搜索按钮。当按下搜索按钮时,我想强制网格通过传入带有我上面引用的字段的搜索模型来从控制器获取满足条件的数据。
搜索表单包含在 _CustomerSearch 部分视图中。
我之前使用 Telerik MVC 扩展实现了这种事情,方法是利用 OnDataBinding 客户端事件并在那里更新参数值,然后手动进行 Ajax 调用以获取数据。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));
}