我在视图中使用剑道网格。我如何过滤网格中的数据。我的网格从模型的列表中获取数据。
@(Html.Kendo().Grid(Model.list)
.Name("listgrid")
.Columns(columns =>
{
columns.Bound(p => p.Name).Title("Name");
columns.Bound(p => p.status).Title("status");
})
.Sortable()
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource)
)
否,我想根据Name字段过滤网格。我尝试过
var datasource = new kendo.data.DataSource({
data: [{name: "sasdas"}],
filter: {
logic: "or",
filters:[
{ field: "Name", operator: "eq", value: "null" },
{ field: "Name", operator: "eq", value: "" }
]
}
});
我在这里做错了什么。
答案 0 :(得分:0)
方案1:如果要为过滤器添加单独的行
@(Html.Kendo().Grid(Model.list)
.Name("listgrid")
.Columns(columns =>
{
columns.Bound(p => p.Name).Title("Name").Filterable(ftb => ftb.Cell(cell => cell.ShowOperators(false)));
columns.Bound(p => p.status).Title("status").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").SuggestionOperator(FilterType.Contains)));
})
.Sortable()
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource)
)
方案2:自定义过滤器菜单:
@(Html.Kendo().Grid(Model.list)
.Name("listgrid")
.Columns(columns =>
{
columns.Bound(p => p.Name).Title("Name");
columns.Bound(p => p.status).Title("status");
})
.Sortable()
.Filterable(filterable => filterable
.Extra(false)
.Operators(operators => operators
.ForString(str => str.Clear()
.StartsWith("Starts with")
.IsEqualTo("Is equal to")
.IsNotEqualTo("Is not equal to")
))
)
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource)
)