MVC:Kendo.Grid()过滤器在设置为GridFilterMode.Menu时不起作用,但与GridFilterMode.Row选项一起使用

时间:2018-07-31 17:04:19

标签: asp.net-mvc model-view-controller filter kendo-grid

我在弹出窗口中填充了一个Kendo.Grid(),并将Filterable选项设置为GridFilterMode.Menu

.Filterable(f => f.Mode(GridFilterMode.Menu)
.Enabled(true)
    .Extra(false)
    .Operators(o => o
        .ForString(str => str.Clear()
            .Contains("Contains")
            .IsEqualTo("EqualTo")
            .IsNotEqualTo("NotEqualTo")
            .IsEmpty("Empty")
        )
    )
    .Operators(o => o
        .ForNumber(num => num.Clear()
           .IsEqualTo("EqualTo")
           .IsGreaterThan("GreaterThan")
           .IsLessThan("LessThan")
         )
    )

该选项似乎对我不起作用。它不会过滤,也不允许在我的数字字段列中输入任何内容。

但是,当切换到GridFilterMode.Row时,过滤正在起作用。

可能是什么原因?我想,如果一个选项有效,那么另一个也应该有效。

这是我整个网格的定义:

@(Html.Kendo().Grid(Model.Report)
    .Name(ReportGrid")
    .Columns(columns =>
    {
        columns.Bound(c => c.Col1).Title("Col1").Width(200);
        columns.Bound(c => c.Col2).Title("Col2").Width(200);
        columns.Bound(c => c.Col3).Title("Col3").ClientTemplate("#= kendo.toString(Col3,'c')#").Width("200px");
        columns.Bound(c => c.Col4).Title("Col4").Width(200);
        columns.Bound(c => c.Col5).Title("Col5").Width(200);
        columns.Bound(c => c.Col6).Title("Col6").Width(200);
    })
        .Scrollable(s => s.Height(550).Virtual(true))
        .Reorderable(reorderable => reorderable.Columns(true))
        .Resizable(r => r.Columns(true))
        .Sortable()
        .ColumnMenu()
        .Pageable(p => p
            .Refresh(true)
            .PageSizes(true)

        )

        .Filterable(f => f.Mode(GridFilterMode.Menu)
        .Enabled(true)
            .Extra(false)
            .Operators(o => o
                .ForString(str => str.Clear()
                    .Contains("Contains")
                    .IsEqualTo("EqualTo")
                    .IsNotEqualTo("NotEqualTo")
                    .IsEmpty("Empty")
                )
            )
            .Operators(o => o
                .ForNumber(num => num.Clear()
                   .IsEqualTo("EqualTo")
                   .IsGreaterThan("GreaterThan")
                   .IsLessThan("LessThan")
                 )
            )
        )
        .DataSource(ds => ds
            .Ajax()
            .PageSize(20)
            .Events(e => e.Error("CheckError"))
            .Read(read => read.Action("GetReport", "Report", Model))
        ))

还有其他方法可以使它工作吗?

0 个答案:

没有答案