【发布时间】:2012-12-21 15:05:04
【问题描述】:
我想为具有多个条件的数据源构建过滤器。我发现这个帖子 (HERE) 那里的人几乎有同样的问题,但我想在我的两个操作之间做一个 OR 而不是 AND。
目前有我的代码:
var filter = { logic: "OR", filters: [] };
var filterProduct = { logic: "AND", filters: [] };
var supplierValue = dropdownSupplier.value();
if (supplierValue != "00000000-0000-0000-0000-000000000000") {
filterProduct.filters.push({ field: "SupplierId", operator: "eq", value: supplierValue });
}
var categoryValue = dropdownCategory.value();
if (categoryValue != "00000000-0000-0000-0000-000000000000") {
filterProduct.filters.push({ field: "CategoryId", operator: "eq", value: categoryValue });
}
var typeValue = dropdownType.value();
if (typeValue != "00000000-0000-0000-0000-000000000000") {
filterProduct.filters.push({ field: "TypeId", operator: "eq", value: typeValue });
}
var filterSelect = { logic: "OR", filters: [] };
filterSelect.filters.push({ field: "Id", operator: "eq", value: "00000000-0000-0000-0000-000000000000" });
filter.filters.push(filterProduct);
filter.filters.push(filterSelect);
dropdownProduct.dataSource.query({ filter: filter });
事实上我想要做的是:(filterProduct) OR (filterSelect) 但如果我没有在变量过滤器中使用“逻辑”,过滤器将是一个“AND”。
非常感谢
编辑:有一个 jsFiddle 接近我想要做的,但使用“AND”:Example 在这个例子中,过滤器是: [ {[ Freight = 11.61 OR Freight = 51.30 ]} AND {[ City startswith "Charleroi" ]} ]
但我想要一些类似的东西: [ {[ Freight = 11.61 OR Freight = 51.30 ]} OR {[ City startswith "Charleroi" ]} ]
【问题讨论】:
-
我终于明白了,我会在 8 小时内把我的代码放在那里,我将能够... 但是关键字 AND 和 OR 需要小写,我不需要使用变量过滤器选择
标签: datasource kendo-ui