首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Yii2网格视图的自定义筛选器下拉菜单

Yii2网格视图的自定义筛选器下拉菜单
EN

Stack Overflow用户
提问于 2017-03-24 18:18:57
回答 1查看 4.5K关注 0票数 0

我正在尝试在网格视图标题中添加一个名为Sort By Month的自定义筛选器。这是我正在修改的站点的以前版本的一个示例,请参见下图

我查看了网格视图的layout选项,并在{items}之前的布局模板中添加了一个下拉列表

GridView::widget(
        [
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
            'layout' => '{summary}{errors}' . \kartik\widgets\Select2::widget(
                [
                    'model' => $searchModel,
                    'attribute' => 'filter_month',
                    'theme' => \kartik\widgets\Select2::THEME_DEFAULT,
                    'data' => $searchModel->getFilterMonths(),
                    'pluginEvents' => [
                        "select2:select" => 'function() { $("#w2").submit();}',
                        //  'select2:select'=> new \yii\web\JsExpression("function(){console.log('here')}"),
                    ],
                    'options' => [
                        'placeholder' => '--Select Month--',
                    ],
                    'pluginOptions' => [
                        'allowClear' => true,
                        'width' => '160px',
                    ],
                ]
            ) . '{items}{pager}',
            'columns' => [
                ['class' => 'yii\grid\SerialColumn'],
                'name',
                'title',
                'catalog',
                'upc_code',
                [
                    'attribute' => 'created_on',
                    'label' => 'Created On',
                    'filter' => \yii\jui\DatePicker::widget(['dateFormat' => 'yyyy-MM-dd', 'model' => $searchModel, 'attribute' => 'created_on']),
                    'format' => 'html',
                ],
                [
                    'attribute' => 'status',
                    'label' => 'Status',
                    'format' => 'raw',
                    'value' => function ($data) {
                        switch ($data->status) {
                            case 0:
                                return "Being Edited    (" . $data->created_on . ")";
                                break;
                            case 1:
                                return ($data->maxdate == '') ? 'Active' : 'Active';
                                break;
                            case 2:
                                return "Expired";
                                break;
                        }
                    },
                ],
                ['class' => 'yii\grid\ActionColumn'],
            ],
        ]
);

现在,当我从下拉列表中选择一个选项时,我想提交filters窗体,但不知道如何将默认的filter submit事件附加到下拉选项中,以便在我选择下拉列表中的任何选项时过滤结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-24 19:11:32

对于自定义过滤器,您已经使用了完美的布局,但您必须提供您的自定义字段作为filterSelector

"filterSelector" => "#". Html::getInputId($searchModel, 'AttributeName'),
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42996849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档