下拉列表atk4 quicksearch

时间:2011-11-28 09:31:36

标签: atk4

我尝试在mvcgrid中填写快速搜索的下拉菜单,我的代码是:

 $g = $this->add('MVCGrid');
 $g->setModel('materiale');
 $g->addPaginator(25);
 $s = $g->addQuickSearch(array('nome_mat'));

 $value_list = array(
        1=>'Granito',
        2=>'Marmo'
    );

 $s->addField('dropdown','tipo_mat','Tipo_mat: ')->setValueList($value_list);

下拉列表显示在快速搜索表单上。 我的db字段是tipo_mat,但是当我点击quicksearch按钮时没有什么可以提升,有人可以帮助我。 感谢的

1 个答案:

答案 0 :(得分:0)

您会发现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']);

“过滤器”和“快速搜索”类可以帮助您保存搜索值,但您不能害怕look into their source并创建自己的QuickSearch类,它可以正确应用参数。

在您的情况下使用Filter可能比快速搜索更好,因为“applyDQ”的处理方式如下:

https://github.com/atk4/atk4/blob/master/lib/Filter.php#L62