Фильтрация источника данных Kendo UI с использованием лямбда-операторов OData v4

Я хотел бы отфильтровать Kendo DataSource с помощью лямбда-операторов OData v4 any а также all,

Я не смог найти никакой информации о том, как этого добиться, используя dataSource.filter имущество. Я могу отфильтровать источник данных, вставив фильтр в URL-адрес следующим образом:

dataSource.transport.read.data.$filter = "Clients/any(c:c/Id eq 1)"

Но это не практично в моем случае. То, что я ищу, это способ объявить фильтр, подобный этому:

filter: { field: 'Clients/Id', operator: 'any', value: 1 }

Поддерживает ли Kendo UI лямбда-операторы OData в текущей версии?

2 ответа

Решение

В настоящее время такой поддержки нет. Это из документации:

filter.operator String

Оператор фильтра (сравнение). Поддерживаемые операторы: "eq" (равно), "neq" (не равно), "lt" (меньше), "lte" (меньше или равно), "gt" (больше чем), "gte" (больше или равно)," начинается с "," заканчивается с "," содержит ". Последние три поддерживаются только для строковых полей.

Я также попробовал сам, и он не работает, вы можете запустить пример и наблюдать за сетевыми запросами. Вы заметите, что запросы к серверу не включают настраиваемые операторы, если вы переключитесь на фильтрацию клиентов, вы получите ошибку. Так что это не сработает, по крайней мере, сейчас.

http://dojo.telerik.com/areXe

Кстати, зачем вам такая фильтрация? Если вам действительно нужна такая фильтрация, вы можете расширить сетку и переопределить фильтр, включая ваши пользовательские операторы, я видел примеры здесь, но сам этого не делал. Я расширяю другие виджеты, хотя.

Это можно сделать так:

filter: { field: 'Clients/any(c:c.Id eq 1)', operator: 'eq', value: true }
Другие вопросы по тегам