Мне нужно оценить (и, возможно, построить позже) сложный фильтр в приложении ASP.NET WebForms. Фильтр должен быть в основном основан на ASP.NET AJAX или jQuery для высокой интерактивности. Фильтр должен позволять фильтровать данные со сложными логическими условиями (и / или фигурными скобками) и несколькими операторами. Пользователь должен иметь возможность сохранить запрос фильтра и использовать его (загрузить) позже (логика сервера). Более того, до сих пор идет обсуждение оператора in.
Приложение должно иметь графический редактор фильтров. Я хочу иметь полный контроль над набором операндов (полей фильтрации) и операторов. Компонент будет использоваться для всех действий фильтрации в приложении. Моя проблема только в том, как сделать часть пользовательского интерфейса - перевод встроенной «структуры запроса» не является проблемой.
Вы когда-нибудь делали что-то подобное? Не могли бы вы поделиться опытом, как лучше и быстрее всего создать такой компонент? Нужно ли мне разрабатывать компонент или есть какой-либо существующий, который имеет хотя бы часть функциональности и может быть расширен для предоставления других функций? Поскольку я не очень разбираюсь в разработке на стороне клиента, я не знаю, насколько сложной задачей является разработка такого компонента с нуля.
Другая возможность - определить некоторый язык мета-запросов и позволить пользователям писать запрос в текстовое поле запроса с поддержкой построения логических выражений.
Я уже проверил доступные элементы управления в инструментах DevExpress и Telerik:
- Плюсы: Очень хорошая визуализация, быстрая. Наверное, у нас есть лицензии DevExpress.
- Минусы: тесно связаны с сеткой DevExpress. На основе документации нет расширяемости и нет контроля над операндами и операторами. Он использует операнды, представленные в виде столбцов для сетки - мне нужно гораздо больше. Наверное, нет возможности сохранять и загружать фильтры.
- Плюсы: Без сетки, выглядит как отдельный элемент управления.
- Минусы: я не нашел документации - я не уверен в расширяемости, но код выглядит так, как будто он использует некоторый элемент управления привязкой данных в качестве источника операндов = проблема. Мне не нравится визуализация. Демо действительно медленное. У нас нет лицензий Telerik.