【发布时间】:2018-02-12 18:29:15
【问题描述】:
我正在使用自定义多选代码来过滤列。目前我可以让它根据一个选择进行过滤,但无法根据多个值进行过滤。如果选中了任何选定的复选框,我需要读取逻辑,然后在网格中显示选择。我现在写它的方式是过滤每一个,但如果其中一个选择为假,即使其他选择之一为真,它也会从网格中删除它。
var filter = dataSource.filter() || { logic: "or", filters: [] };
var fieldFilters = $.map(element.find(":checkbox:checked"), function (input) {
return {
field: field,
operator: "eq",
value: input.value
};
});
if (fieldFilters.length) {
removeFiltersForField(filter, field);
filter.filters.push({
logic: "or",
filters: fieldFilters
});
var filterType = filter.filters[0].filters;
if (filter.filters[0].filters.length > 1) {
var filterLogic = { logic: "or", filters: filter.filters };
dataSource.filter(filterLogic.filters[0]);
} else {
dataSource.filter(filterType); // This works, but its only one selection
}
}
如果任何选择为真,我需要它返回并忽略那些为假的。目前,它是按顺序排列的,所以如果第一个选择为真,则将其显示在网格中,但如果下一个选择为假,则将其从网格中删除。
【问题讨论】:
标签: kendo-ui kendo-grid