Kendo grid 剑道MVC网格过滤-考虑多个字段的过滤器
我有一个MVC剑道网格,其中一列是实际使用多个字段的客户机模板。默认情况下,内置筛选仅应用于列绑定到的字段。如何覆盖该字段,使其同时考虑这两个字段。也就是说,当我搜索“Contains”“De”时,显示“Detroit,MI”的列应该返回 以下是我目前掌握的情况: 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
@(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?
}
}