我想使用OData v4 lambda operators all
和dataSource.filter
来过滤Kendo DataSource。
我无法使用dataSource.transport.read.data.$filter = "Clients/any(c:c/Id eq 1)"
属性找到有关如何实现此目的的任何信息。我可以通过在URL中注入过滤器来过滤DataSource,如下所示:
filter: { field: 'Clients/Id', operator: 'any', value: 1 }
但这在我的案例中并不实用。我正在寻找的是一种声明过滤器类似于此的方法:
function yourFunction() {
if (window.innerWidth >= 992) {
//TODO: Your code here
}
}
// Set both event handlers to same function
window.onload = window.onresize = yourFunction;
Kendo UI是否支持当前版本的OData lambda运算符?
答案 0 :(得分:2)
目前没有此类支持。这来自文档:
filter.operator String
过滤器运算符(比较)。支持的运营商是:" eq" (等于)," neq" (不等于)," lt" (小于)," lte" (少于 或等于)," gt" (大于)," gte" (大于或等于), " startwith"," endswith","包含"。支持最后三个 仅适用于字符串字段。
我自己也尝试了它并且它不起作用,你可以启动示例并观察网络请求,你会注意到对服务器的请求不包括自定义操作符,如果你切换到客户端过滤你会收到错误。所以它至少现在都不会起作用。
顺便问一下为什么你需要这样的过滤? 如果你真的需要这样的过滤,你可以扩展网格并覆盖过滤器,包括你的自定义操作符,我在这里看过例子,但我自己也没做过。我一直在扩展其他小部件。
答案 1 :(得分:0)
可以这样做:
filter: { field: 'Clients/any(c:c.Id eq 1)', operator: 'eq', value: true }