Kendo ui 剑道网格MVC:字符串字段的默认过滤器设置为";等于;

Kendo ui 剑道网格MVC:字符串字段的默认过滤器设置为";等于;,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,剑道格网有默认过滤器,用于“dt”字段“等于”带日历。对于“name”字段,它的默认过滤器“等于”,但我想将“Contains”移到选项列表的第一位,并将其设为字符串的默认值。如何实施 public class MyClass { public DateTime dt { get; set; } public string name { get; set; } } @(Html.Kendo() .Grid<MyClass>() .Name(

剑道格网有默认过滤器,用于“dt”字段“等于”带日历。对于“name”字段,它的默认过滤器“等于”,但我想将“Contains”移到选项列表的第一位,并将其设为字符串的默认值。如何实施

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())
公共类MyClass
{
公共日期时间dt{get;set;}
公共字符串名称{get;set;}
}
@(Html.Kendo()
.Grid()
.名称(“网格”)
.DataSource(数据=>
data.Ajax()
.ServerOperation(错误)
.Read(Read=>
read.Action(“MyAction”、“MyController”))
)
.Columns(cols=>
{
cols.Bound(x=>x.dt).标题(“日期”).宽度(150);
cols.Bound(x=>x.name).Title(“name”).Width(250);
})
.可过滤()
.Sortable())
看一下演示。看起来你会按照以下思路做一些事情:

@(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())
@(Html.Kendo()
.Grid()
.名称(“网格”)
.DataSource(数据=>
data.Ajax()
.ServerOperation(错误)
.Read(Read=>
read.Action(“MyAction”、“MyController”))
)
.Columns(cols=>
{
cols.Bound(x=>x.dt).标题(“日期”).宽度(150);
cols.Bound(x=>x.name).Title(“name”).Width(250);
})
.Filterable(Filterable=>Filterable
.额外(错误)
.操作员(ops=>ops
.ForString(str=>str.Clear()
.Contains(“Contains”)
.StartsWith(“以开头”)
//你还需要其他的过滤器吗
)))
.Sortable())
如果我解释正确,那么
str.Clear()
会清除现有的过滤器,这样您就可以从中构建自己的过滤器。因此,例如,如果您认为客户端不需要或不希望使用带有过滤器的
.EndsWith,您就不会将其包含在此处。

请查看演示。看起来你会按照以下思路做一些事情:

@(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())
@(Html.Kendo()
.Grid()
.名称(“网格”)
.DataSource(数据=>
data.Ajax()
.ServerOperation(错误)
.Read(Read=>
read.Action(“MyAction”、“MyController”))
)
.Columns(cols=>
{
cols.Bound(x=>x.dt).标题(“日期”).宽度(150);
cols.Bound(x=>x.name).Title(“name”).Width(250);
})
.Filterable(Filterable=>Filterable
.额外(错误)
.操作员(ops=>ops
.ForString(str=>str.Clear()
.Contains(“Contains”)
.StartsWith(“以开头”)
//你还需要其他的过滤器吗
)))
.Sortable())

如果我解释正确,那么
str.Clear()
会清除现有的过滤器,这样您就可以从中构建自己的过滤器。因此,例如,如果您认为客户端不需要或不想要使用
.EndsWith
过滤器,您就不会将其包含在此处。

如果您有源代码打开剑道解决方案并找到 类名称
StringOperators
位于
Kendo.Mvc/UI/Grid/Settings

Operators=newdictionary()中

根据需要更改顺序,重新生成解决方案,然后覆盖项目中生成的文件。

如果源代码已打开剑道解决方案并找到 类名称
StringOperators
位于
Kendo.Mvc/UI/Grid/Settings

Operators=newdictionary()中

根据需要更改顺序,重新生成解决方案,然后覆盖项目中生成的文件。

解决问题时,会引发新问题,也就是说,locale.js文件中指定的本地化将不再应用于相应的字符串。虽然它解决了问题中描述的问题,但它提出了一个新问题,即locale.js文件中指定的本地化将不再应用于相应的字符串。