Kendo Grid对“dt”字段的默认过滤器“等于”日历。对于“名称”字段,它具有默认过滤器“等于”,但我想将“包含”移动到选项列表的第一个位置,并使其成为字符串的默认值。怎么可以实现?
public class MyClass
{
public DateTime dt { get; set; }
public string name { get; set; }
}
@(Html.Kendo()
.Grid<MyClass>()
.Name("grid")
.DataSource(data =>
data.Ajax()
.ServerOperation(false)
.Read(read =>
read.Action("MyAction", "MyController"))
)
.Columns(cols =>
{
cols.Bound(x => x.dt).Title("Date").Width(150);
cols.Bound(x => x.name).Title("Name").Width(250);
})
.Filterable()
.Sortable())
答案 0 :(得分:1)
看看Filter menu customization演示。看来你会沿着这些方向做点什么:
@(Html.Kendo()
.Grid<MyClass>()
.Name("grid")
.DataSource(data =>
data.Ajax()
.ServerOperation(false)
.Read(read =>
read.Action("MyAction", "MyController"))
)
.Columns(cols =>
{
cols.Bound(x => x.dt).Title("Date").Width(150);
cols.Bound(x => x.name).Title("Name").Width(250);
})
.Filterable(filterable => filterable
.Extra(false)
.Operators(ops => ops
.ForString(str => str.Clear()
.Contains("Contains")
.StartsWith("Starts with")
// any other filters you want in there
)))
.Sortable())
如果我正确地解释它,str.Clear()
会清除存在的过滤器,以便您从那里构建自己的过滤器。因此,如果您认为客户不需要或不想使用.EndsWith
过滤器,则不会在此处包含此内容。
答案 1 :(得分:1)
如果你有源代码打开kendo解决方案并找到
StringOperators
Kendo.Mvc/UI/Grid/Settings
Operators = new Dictionary<string, string>()
根据需要更改顺序,重新构建解决方案,然后覆盖项目中生成的文件。