Kendo grid 剑道MVC网格过滤-考虑多个字段的过滤器

Kendo grid 剑道MVC网格过滤-考虑多个字段的过滤器,kendo-grid,kendo-asp.net-mvc,Kendo Grid,Kendo Asp.net Mvc,我有一个MVC剑道网格,其中一列是实际使用多个字段的客户机模板。默认情况下,内置筛选仅应用于列绑定到的字段。如何覆盖该字段,使其同时考虑这两个字段。也就是说,当我搜索“Contains”“De”时,显示“Detroit,MI”的列应该返回 以下是我目前掌握的情况: MVC视图 @(Html.Kendo().Grid<ViewModel>() .DataSource(dataSource => dataSource .Cus

我有一个MVC剑道网格,其中一列是实际使用多个字段的客户机模板。默认情况下,内置筛选仅应用于列绑定到的字段。如何覆盖该字段,使其同时考虑这两个字段。也就是说,当我搜索“Contains”“De”时,显示“Detroit,MI”的列应该返回

以下是我目前掌握的情况:

MVC视图

        @(Html.Kendo().Grid<ViewModel>()
        .DataSource(dataSource => dataSource
            .Custom()
            .Transport(t =>
            {
                t.Read(r => r.Action("StatusGridRead", "DeviceStatus"));
            })
            .Schema(schema => schema
                .Data("Result.Data")
                .Total("Result.Total")
                .Errors("Result.Errors")
            .Model(m =>
            {
                m.Id(f => f.Id);
                m.Field(f => f.StateOrProvince);
                m.Field(f => f.City);
                ...
            })
            )
        )
        .Columns(columns =>
        {
            columns.Bound(c => c.StateOrProvince).Title("City & State").ClientTemplate("#=City#, #=StateOrProvince#");
            ...
        })
        .Events(e=>
        {
            e.Filter("statusGridFilter");
        })
        .Sortable()
        .Filterable(f =>
        {
            f.Extra(false);
            f.Operators(o => o.ForString(s =>
            {
                s.Clear();
                s.Contains("Contains");
                s.IsEqualTo("Is Equal To");
                s.StartsWith("Starts With");
                s.EndsWith("Ends With");
                s.DoesNotContain("Does Not Contain");
                s.IsNotEqualTo("Is Not Equal To");
            }));
        })
        ) 

我知道,如果我为城市和州写了一个专栏,就可以解决这个问题,但是我实际上有一个类似的场景(显示了许多字符串字段的客户端模板),在那里这不起作用,我只是选择这个作为最简单的例子。除了为一个字段制作一列之外,我还愿意接受任何可能解决此场景过滤问题的其他想法

这可能会回答你的问题:这非常有帮助,我确实有一个有效的解决方案,尽管感觉可能有更好的方法。基本上,在过滤器事件上,我捕获并确定了过滤逻辑,然后一旦网格完成了它的工作,我就在网格的onDataBound事件中将过滤器手动应用到数据源。是的,我认为这是现在完成它的唯一方法。我能想到的唯一其他方法是将其他列添加为隐藏列,并将筛选器应用于这两个列,这几乎是相同的事情,并且您已经声明不想这样做。
function statusGridFilter(e) {
    if (e.field == "StateOrProvince") {
        //What do I do here? 
    }
}