【发布时间】:2013-03-18 00:57:20
【问题描述】:
我有一个基本的KendoUI Grid 用于我的 ASP.NET MVC 应用程序,它使用 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));
}
【问题讨论】:
-
请注意,如果您过滤的字段未在网格中显示,但在您提供的 模型 中,则可以使用 Nicholas 的方法网格
标签: asp.net-mvc telerik kendo-ui kendo-grid