【发布时间】:2016-11-14 19:30:55
【问题描述】:
我有一个带有 Web Api 服务器端排序的网格,它可以工作。我需要添加过滤。当网格的数据源将过滤参数发送到 Web Api 控制器时,过滤器对象始终为“空”,而不是 null。这是我的设置
网格数据源:
var myTeamGridDataSource = new kendo.data.DataSource({
serverPaging: true,
serverSorting: true,
serverFiltering: true,
schema: {
data: "data",
total: "count"
},
pageSize: 10,
transport: {
read: {
url: baseMyTeamUrl, // web api
dataType: "json",
type: "POST",
}
},
sort: {
field: "Name",
dir: "asc"
}
});
行动:
public HttpResponseMessage KendoGridMyTeam(GridInputModel inputModel)
{
...
}
GridInputModel.cs
public class GridInputModel
{
public int Page { get; set; }
public int PageSize { get; set; }
public int Skip { get; set; }
public int Take { get; set; }
public List<GridInputSortModel> Sort { get; set; }
public List<GridInputFilterModel> Filter { get; set; }
}
GridInputFilterModel.cs
public class GridInputFilterModel
{
public GridInputFilterModel()
{
filters = new List<GridInputFilterModel>();
}
public string field { get; set; }
public string Operator { get; set; }
public object value { get; set; }
public string logic { get; set; }
public List<GridInputFilterModel> filters { get; set; }
}
请求正文
take=10&skip=0&page=1&pageSize=10&sort[0][field]=Name&sort[0][dir]=asc
&filter[filters][0][field]=Name
&filter[filters][0][operator]=eq
&filter[filters][0][value]=cling
&filter[logic]=and
GridInputModel "GridInputModel inputModel" 已实例化,排序对象已预设,该功能运行良好。但是过滤器在客户端设置并发送到服务器时是空的。经过一堆搜索,我找不到服务器端网格过滤的现代示例。你可能会建议我使用 Kendo.Mvc 库:
[DataSourceRequest] DataSourceRequest request
这还会在请求中创建一个过滤器对象,但过滤器也是空的。有什么建议?我会犹豫使用的一种选择是使用 parameterMap 并在查询字符串上发送过滤器。如果我必须这样做,很好,但必须有人让这个工作。
【问题讨论】:
标签: ajax model-view-controller kendo-ui