您会发现快速搜索只不过是一个简单的表单,它在提交时将条件应用于您的网格。理论上,你可以有一个标准的表格在那里做同样的事情:
$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']);
“过滤器”和“快速搜索”类可以帮助您保存搜索值,但您一定不要害怕查看它们的来源并创建自己的可以正确应用参数的快速搜索类。
也许在您的情况下使用过滤器比快速搜索更好,因为“applyDQ”的处理方式:
https://github.com/atk4/atk4/blob/master/lib/Filter.php#L62