複数の条件を持つデータソースのフィルターを作成したいと思います。私はこのスレッド(ここ)を見つけました。みんながほぼ同じ問題を抱えていますが、私は2つの操作の間にANDではなくORを作成したいと思います。
私がこれまでに持っているコードがあります:
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」があります:例この例では、フィルターは次のとおりです:[{[Freight = 11.61 OR Freight = 51.30]} AND {[City startwith "Charleroi"]} ]
しかし、私は次のような何かを持ちたいと思っています:[{[Freight = 11.61 OR Freight = 51.30]} OR {[City startwith "Charleroi"]}]