Вы обнаружите, что Quicksearch - не более чем простая форма, которая применяет условие к вашей сетке при отправке.Теоретически, у вас может быть стандартная форма, выполняющая одно и то же:
$search = $g->add('Form',null,'quick_search',array('form/quicksearch','form'));
$search->addFiled('dropdown','tipo_mat')
->setValueList($value_list)
->set($_GET['tipo_mat']);
$search->addField('search','q')
->set($_GET['q']);
// Handle submit of form, reload grid with AjAX, pass values as arguments
if($search->isSubmitted()){
$grid->js()->reload($search->getAllData())->execute();
}
// If values are passed, use them
if($_GET['q'])
$grid->dq->where('name like','%'.$_GET['q'].'%');
if($_GET['tipo_mat'])
$grid->dq->where('foo',$_GET['tipo_mat']);
Классы «Фильтр» и «Быстрый поиск» помогают вам сохранять значения поиска, но вы не должны бояться посмотрите на их источник и создайте свой собственный класс QuickSearch, который может правильно применять параметры.
Возможно, использование фильтра в вашем случае лучше, чем быстрый поиск, из-за того, как обрабатывается "applyDQ":
https://github.com/atk4/atk4/blob/master/lib/Filter.php#L62