剑道电网MVC:字符串字段默认过滤器设置为“等于”(Kendo Grid MVC: default

2019-10-18 08:22发布

剑道网格中是否有“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())

Answer 1:

看看在滤镜菜单自定义演示。 看来你会沿着这些路线做一些事情:

@(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过滤器,例如,你不会在这里包含它。



Answer 2:

如果你的源代码开放的剑道的解决方案,并找到类名StringOperatorsKendo.Mvc/UI/Grid/Settings

Operators = new Dictionary<string, string>()你想改变顺序,重新生成解决方案,然后在项目中覆盖生成的文件。



文章来源: Kendo Grid MVC: default filter for string fields is set to “is equal to”