Нашёл ответ на свои вопросы. На 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;
});
Возможно это кому поможет, код набросал на скорую руку, строго не судите