Задать вопрос
@Oversec

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

Нужно чтобы фильтр происходил не когда пользователь ввёл данные, а когда нажал на кнопку "Фильтр". Много фильтров в таблице и иногда просто не успеваешь их заполнить, а обновление таблице происходит не вовремя и приходится заного выставлять фильтры. Можно ли это как-нибудь сделать? И кнопка сброс, была бы кстати (думал через js, но видимо это не лучшее решение).
  • Вопрос задан
  • 433 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Решения вопроса 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;
});


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

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

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