查看代码:
[
'attribute' => 'name',
'filterType'=>GridView:: FILTER_SELECT2,
'filter'=>ArrayHelper::map(\app\models\Item::find()->orderBy('category')->asArray()->all(), 'name', 'name'),
'filterWidgetOptions'=>[
'pluginOptions'=>['allowClear'=>true, 'minimuminputLength' => 3],
],
'filterInputOptions'=>['placeholder'=>'Any Item', 'multiple' => true ],
'group'=>true, // enable grouping
'label' => 'Item',
'contentOptions' =>
['style'=>'max-width: 150px; font-size: 12px;overflow: auto; word-wrap: break-word;'],
],
该代码是可行的,但标签值应该是从列表中选择的项目名称值,而我想要的是我可以为标签过滤器/搜索键入任何单词而不是我应该从列表中选择值。 谢谢
答案 0 :(得分:0)
使用以下代码在网格视图中获取TypeAhead过滤器值:
[
'attribute' => 'attributeName',
'format' => 'raw',
'value' => function ($data) {
return$data->attributeName;
},
'filter' => Select2::widget([
'model' => $searchModel,
'attribute' => 'attributeName',
'data' => Model::getAllModelListFunction(),
'options' => [
'placeholder' => 'Select',
],
'pluginOptions' => [
'allowClear' => true
],
]),
],
getAllModelFunction应该是这样的:
public static function getAllModelFunction()
{
$data = self::find()->select('id,name')->asArray()->all();
return ArrayHelper::map($data, 'id', 'title');
}
请记住在Index.php文件中安装并使用以下小部件:
use kartik\select2\Select2;