【问题标题】:dropdown list atk4 quicksearch下拉列表 atk4 快速搜索
【发布时间】:2011-11-28 18:25:18
【问题描述】:

我尝试在 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);

下拉列表出现在快速搜索表单上。 我的数据库字段是tipo_mat,但是当我单击快速搜索按钮时什么都没有,有人可以帮我吗? 谢谢

【问题讨论】:

    标签: atk4


    【解决方案1】:

    您会发现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 并创建您自己的可以正确应用参数的快速搜索类。

    也许在您的情况下使用过滤器比快速搜索更好,因为“applyDQ”的处理方式:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多