Create custom datatable filter

Добрый день.

Не подскажите такой вопрос. Хочется создать свой собственный фильтр для datatable на основе выпадающего selectFilter, только лишь с тем отличием что при выборе из открывшегося списка появлялась форма в которой можно было ввести параметры фильтра (для каждой позиции форма своя) не подскажите в какую сторону копать?

Спасибо

Ещё интересный момент http://webix.com/snippet/e8af5500

когда делаешь onBeforeFilter и фильтр сервис сайд. То почему что срабатывает всегда на первом текстовом фильтре, а не на том который меняется

можете посмотреть имплементацию самого selectFilter. на этом примере я сделал с нуля свою систему фильтрации (и клиентскую и серверную стороны)

Я её глянул хотел начать ковырять только не очень понял одного момента. Как его объявить?

webix.ui.datafilter.myFilter = webix.extend({
init: function() {

и использовать

header: [‘Title’, { content: ‘myFilter’ } ]

?

в вашем случае лучше создать фильтр с нуля. там должны присутствовать getValue, setValue, refresh, render. и если серверный фильтр, то должно быть указано $server:true. остальное на ваше усмотрение. в richselectfilter лучше посмотреть для примера. там более красиво оформлено

Уважаемый Интеграл! Подскажите такой вопрос. Я решил сделать на основе селектФильтра свой и столкнулся с такой проблемой - при вызове функции getValue не могу отловить кто вызвал эту функцию. Толи это сделала функция отвечающая за перерисовку селекта - фильтра, толи та которая получает значение фильтров и делает запрос на сервер. И у меня получается либо правильный запрос на сервер с моим значением myData, но при этом у селекта-фильтра значение ставится то которое в myData и визуально он получается пустым. Либо правильно отображается селект-фильтр, но при этом на сервер в запросе уходит filter[title]=custom а не значение myData

http://webix.com/snippet/7201b86f

http://webix.com/snippet/967f1b39 обратите внимание на отмеченные места. getValue и setValue отвечают за обмен результатом.

Но ведь имелось ввиду что когда фильтр custom то он на сервер должен передавать то что было введено в форме. А тут получается что myData висит в объекте и никак не используется. А пока передается только filter[title]=custom а не filter[title]=“Введенное название”

тогда можно вернуть getValue и setValue в прежнее положение.

Тогда появляется тот вопрос который ввел меня в ступор уже на пару дней. Если выбрать custom и ввести данные в форме. То всё будет хорошо, но только один раз. Дальнейшие все выборы в фильтре будут ставиться Custom потому что myData не null. Вот и возникает вопрос как определить кто вызывает функцию getValue. Чтобы если это делают функции отвечающие за фильтры (при смене других фильтров или страницы таблицы) отдавались данные из myData, а если это вызывают функции которые отвечают за интерфейс фильтра то отдавался ‘custom’

http://webix.com/snippet/a118a9ee

Премного уважаемый интеграл! Спасибо вам за помощь. Но тут возникла не объяснимая ситуация. Когда данные грузятся сразу в data тогда работает всё хорошо и здорово как в вашем сниппите. Но стоит только данные загружать через url, как вот тут http://webix.com/snippet/50865c96 то как можно увидеть в алертах, getValue запускается много раз при каждой отрисовки таблицы и на последнем myData становится undefined, не подскажите почему и как это побороть?

http://webix.com/snippet/e156ef52 для серверного фильтра это нормально. чтобы фильтр не создавать заново, лучше его кешировать где-нибудь.

Спасибо большое!