Kendo MVC网格多列过滤器

时间:2017-11-25 18:50:12

标签: kendo-ui kendo-asp.net-mvc

我无法让我的网格过滤超过1列。当我尝试添加第二个过滤器时,我得到500错误。它永远不会命中我的控制器POST动作。我在2个不同的网格和数据源上获得了这种行为。

网格(缩短示例):

@(Html.Kendo().Grid<FooItemViewModel>()
.Name("FooGrid")
.Columns(column =>
{
    column.Bound(p => p.FooTypeCode).Title("Type").Width(22);
    column.Bound(p => p.FooCode).Title("Foo Code").Width(40);
    column.Bound(p => p.FooDesc).Title("Foo Description").Width(260);
    column.Bound(p => p.ReportCode).Title("Report").Width(20);
})
.Filterable()
.Sortable()
.Pageable(builder => builder.PageSizes(new[] { 10, 25, 100 }))
.DataSource(dataSource => dataSource
    .Ajax()
    .PageSize(25)
    .Model(m =>
    {
        m.Id(s => s.FooID);
        m.Field(s => s.FooID).Editable(false);
    })
    .Read(read => read.Action("Read", "Foo"))  // kendo adds its datasourcerequest on first 2 calls (empty & filter 1)
    .Create(create => create.Action("Create", "Foo"))
    .Update(update => update.Action("Update", "Foo"))
    .Destroy(update => update.Action("Delete", "Foo"))
    .Events(events => events.Error("onDataSourceError"))
))

控制器:

public JsonResult Read([DataSourceRequest] DataSourceRequest request)
{
    var Foos = _db.Foos.Project().To<FooItemViewModel>();
    DataSourceResult response = Foos.ToDataSourceResult(request);
    return Json(response, JsonRequestBehavior.AllowGet);
}

当网格首次加载时,我按预期使用空datasourcerequest命中Read操作。当我添加一个过滤器时,我也使用datasourcerequest命中服务器读取操作并传入预期的列过滤器。当我选择第二列过滤器并单击&#34;过滤&#34;我得到500错误,即使它看起来像一个非常相似的请求:

实际上,当我查看2个帖子时,它们是相似的:

  

工作要求:   排序=安培;页= 1&安培;的pageSize = 25安培;组=安培;过滤器= FooCode〜包含〜&#39; 10.1&#39;

     

请求网址:http://localhost:61556/Foo/Read

     

请求方法:POST状态码:200 OK远程地址:[:: 1]:61556   推荐人政策:no-referrer-when-downgrade

     

请求失败:sort =&amp; page = 1&amp; pageSize = 25&amp; group =&amp; filter = FooCode~ contains~&#39; 10.1&#39;〜和~FooDesc~包含〜&#39; hunt&# 39;

     

请求网址:http://localhost:61556/Foo/Read请求方法:POST   状态代码:500内部服务器错误远程地址:[:: 1]:61556   推荐人政策:no-referrer-when-downgrade

1 个答案:

答案 0 :(得分:0)

原来这是2017.3版本中的一个错误。从2017.3.1018更新到2017.3.1026解决了这个问题。见这里:https://www.telerik.com/forums/asp-net-mvc-grid-multiple-column-filters#x0VfO3YHlkebR81muGeXbg