[英]How to apply complex odata filters programatically with kendo data sources?
我有一個劍道數據源(附加到網格以防萬一),它是一個 OData v4 端點源。 我需要對它應用類似這個過濾器的東西......
LINQ查詢:
ds.data().Where(i => i.References.Any(r => r.OfferLines.Any(l => l.OfferId == "myOfferId"))
OData查詢:
?$filter=References/any(r:r/OfferLines/any(l:l/OfferId eq 'myOfferId'))
我如何使用 Teleriks 記錄的 function dataSource.filter “在我的網格初始化后”以編程方式執行此操作?
您可以使用parameterMap事件來注入自定義過濾器。 這是我的代碼示例,用於按多個或條件過濾文章。
dataSource: {
type: "odata-v4",
serverFiltering: true,
transport: {
read: "/oData/Article",
parameterMap: function (data) {
//Get value used to filter
var value = data.filter.filters[0].value;
//Generate parameters in odata v4 format
var d = kendo.data.transports['odata-v4'].parameterMap(data);
//Add filter by matching any reference containing value
d.$filter = "References/any(ref: contains(tolower(ref/Reference),'" + value + "')))";
return d;
}
},
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.