【发布时间】:2022-12-28 13:05:01
【问题描述】:
我的项目有一个 Kendo Grid,它具有通常的表头过滤功能,但我也被要求为状态类型和年份(多选)提供自定义过滤器。所以我有一个下拉列表,其中包含一组年份可供选择,用户可以选择六年选项中的任何一个。所以这是过滤器的逻辑:
年份列:显示年份与年份选项之一匹配的所有行。此过滤器使用“或”逻辑。
状态列:显示状态等于所选选项之一的所有行。也是“或”逻辑。
过滤器必须使用“与”逻辑来组合两个过滤器。
function setStatusGridFilters() {
var grid = $("#MyKendoGrid").data("kendoGrid");
var dataSource = grid.dataSource;
var filterCollection = { logic: "or", filters: [] };
var displayStatuses = $("#StatusFilter").getKendoCheckBoxGroup().value();
for (var i = 0; i < displayStatuses.length; i++) {
filterCollection.filters.push({ field: "Status", operator: "eq", value: displayStatuses[i] });
}
dataSource.filter(filterCollection);
dataSource.read();
}
function setYearGridFilters() {
var grid = $("#myKendoGrid").data("kendoGrid");
var dataSource = grid.dataSource;
var filterCollection = { logic: "or", filters: [] };
var years = $("#YearList").val();
for (var i = 0; i < years.length; i++) {
filterCollection.filters.push({ field: "Year", operator: "eq", value: years[i] });
dataSource.filter(filterCollection);
dataSource.read();
}
这根本行不通,我不确定如何实现。这些自定义过滤器中的任何一个都可以单独使用,但我还没有找到让它们协同工作的方法。每个过滤器应该与所选选项“或”,但在它们之间“和”。
【问题讨论】:
标签: filter kendo-grid