Yii2 - GridView 外部的下拉列表筛选器



我在视图中有一个kartik\GridView,

网格视图

实际上,在工具栏上添加了一个下拉列表

带下拉列表的网格视图

但是我需要下拉列表作为状态 [solicitudes_status] 的过滤器选项,我该如何实现?谢谢。

$statusAll = TblEstatus::find()->all();
$statusArray = ArrayHelper::map($statusAll, 'estatus_id', 'estatus_descripcion');
$searchModel = new TblSolicitudesSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
'solicitudes_solicitud',
'solicitudes_dependencia_destino_id',
'solicitudes_dependencia_tipoapoyo_id',
'solicitudes_status',
[
'attribute' => 'solicitudes_status',
'filter'    => [ 1=>"Nuevos", 2=>"Atendiendo", 3=>"Terminados" ]
],
['class' => 'yiigridActionColumn'],
],
'toolbar' =>  [
['content'=>
Html::dropDownList('status_list_drop', 'null', $statusArray, ['data-pjax'=>0, 'class' => 'form-control']),
],
],
'pjax' => true,
'bordered' => true,
'striped' => false,
'condensed' => false,
'responsive' => true,
'hover' => true,
'floatHeader' => false,
'showPageSummary' => false, 
'panel' => [
'type' => GridView::TYPE_DEFAULT
],
]); ?>

您可以尝试使用activeDropDownList来执行过滤:

Html::activeDropDownList($searchModel, 'attribute_name',
ArrayHelper::map(ModelName::find()->asArray()->all(), 'ID', 'Name'),
['class'=>'form-control','prompt' => 'Select status']),

根据您的属性更改值。

最新更新