@Oversec

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

Нужно чтобы фильтр происходил не когда пользователь ввёл данные, а когда нажал на кнопку "Фильтр". Много фильтров в таблице и иногда просто не успеваешь их заполнить, а обновление таблице происходит не вовремя и приходится заного выставлять фильтры. Можно ли это как-нибудь сделать? И кнопка сброс, была бы кстати (думал через js, но видимо это не лучшее решение).
  • Вопрос задан
  • 410 просмотров
Решения вопроса 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;
});


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

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

Войти через центр авторизации
Похожие вопросы