Yii2 gridview 的自定义过滤器下拉列表

Yii2 Custom filter Dropdown for gridview

我正在尝试在网格视图中添加名为 按月排序 的自定义过滤器 header 这是我所在站点的先前版本的示例改造见下图

我正在查看网格视图的 layout 选项,并在 {items}

之前的布局模板中添加了一个 drop-down
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'],
            ],
        ]
);

现在我想在 select 来自 drop-down 的选项时提交过滤器表单,但无法弄清楚如何将默认过滤器提交事件附加到 drop-down选项,以便在我 select drop-down.

中的任何选项时过滤结果

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

"filterSelector" => "#". Html::getInputId($searchModel, 'AttributeName'),