@Oversec

Как сделать кнопку при нажатии на которую будет происходить фильтрация в GridView?

Нужно чтобы фильтр происходил не когда пользователь ввёл данные, а когда нажал на кнопку "Фильтр". Много фильтров в таблице и иногда просто не успеваешь их заполнить, а обновление таблице происходит не вовремя и приходится заного выставлять фильтры. Можно ли это как-нибудь сделать? И кнопка сброс, была бы кстати (думал через js, но видимо это не лучшее решение).
  • Вопрос задан
  • 420 просмотров
Решения вопроса 1
@Oversec Автор вопроса
Нашёл ответ на свои вопросы. На Gridview весят тригеры js, которые и начинают сортировку когда поле теряет blur (когда поля становится неактивным). Вот таким js кодом можно запретить GV самому фильтровать, и делать это при нажатии на кнопку

var submit_form = false;

//Out btn for filter
$(document).on('click', '.search-submit-circle',  function(){
    //enable submit for applyFilter event
    if(submit_form === false) {
        submit_form = true;
        $("#no-js-grid").yiiGridView("applyFilter");
    }
});

//disable default submit

$(document).on('beforeFilter', "#no-js-grid" , function(event) {
    return submit_form;
});

$(document).on('afterFilter', "#no-js-grid" , function(event) {
    submit_form = false;
});


Возможно это кому поможет, код набросал на скорую руку, строго не судите
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы