廢話不多說了,先給大家展示下效果圖,如果大家還很滿意請繼續往下閱讀:
具體怎麼實現喃?考慮到一張數據表要下拉效果的字段可能有很多個,我們先在其model中實現一個方法方便後續操作
/** * 下拉篩選 * @column string 字段 * @value mix 字段對應的值,不指定則返回字段數組 * @return mix 返回某個值或者數組 */ public static function dropDown ($column, $value = null) { $dropDownList = [ 'is_delete'=> [ '0'=>'顯示', '1'=>'刪除', ], 'is_hot'=> [ '0'=>'否', '1'=>'是', ], //有新的字段要實現下拉規則,可像上面這樣進行添加 // ...... ]; //根據具體值顯示對應的值 if ($value !== null) return array_key_exists($column, $dropDownList) ? $dropDownList[$column][$value] : false; //返回關聯數組,用戶下拉的filter實現 else return array_key_exists($column, $dropDownList) ? $dropDownList[$column] : false; }
然後我們上代碼看看具體怎麼實現的下拉搜索
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ // ...... [ 'attribute' => 'is_hot', 'value' => function ($model) { return Article::dropDown('is_hot', $model->is_hot); }, 'filter' => Article::dropDown('is_hot'), ], [ 'attribute' => 'is_delete', 'value' => function ($model) { return Article::dropDown('is_delete', $model->is_delete); }, 'filter' => Article::dropDown('is_delete'), ], // ...... ], ]); ?>
像這樣,我們就簡單地實現了兩個下拉效果,要實現篩選功能,在你的dataProvider自定添加該字段的搜索條件即可。
推薦閱讀:
淺析Yii2中GridView常見操作
yii2 頁面底部加載css和js的技巧
淺析Yii2 GridView 日期格式化並實現日期可搜索教程
淺析Yii2 GridView實現下拉搜索教程
關於Yii2 GridView實現下拉搜索教程就給大家介紹這麼多,希望對大家有所幫助!