Kendo Grid MVC:字符串字段的默认过滤器设置为“等于”

时间:2013-07-05 11:11:51

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

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())

2 个答案:

答案 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>() 根据需要更改顺序,重新构建解决方案,然后覆盖项目中生成的文件。