【问题标题】:Yii2 Select2 dropdown in Kartik Gridview as Cell Value is not workingKartik Gridview中的Yii2 Select2下拉菜单,因为单元格值不起作用
【发布时间】:2017-08-23 08:33:37
【问题描述】:

我试图在 Kartik Gridview 中添加 Select2 Dropdown 但没有成功,但它只出现在 Gridview 的第一个元素(行)中。它使用简单的下拉菜单,但不适用于 select2 下拉菜单。我想使用 Select2 Dropdown 而不是简单的 Dropdown。

我喜欢以下:

echo GridView::widget([
     'dataProvider'=> $dataProvider,
     'columns' => [

        ['class' => 'kartik\grid\SerialColumn'],

         ... // Some Parameters

         [  
            'label' => Yii::t('app', 'Status'),
            'format' => 'raw',
            'value' => function ($model) {

            /* ******** Working fine *******/
            /*
             return Html::activeDropDownList( $model, 'jaStatus',  
                   [ 1 =>'Submitted', 2 =>'Processed', 3 =>'Approved', 
                     4 =>'Declined'
                   ],['onchange' => 'updateApplicationStatus()']);
           */

            /* ******** Don't work *******/                  
            return Select2::widget([
                    'model' => $model,
                    'attribute' => 'jaStatus',
                    'data' => [ 1 =>'Submitted', 2 =>'Processed', 
                                3 =>'Approved', 4 =>'Declined'
                               ],
                    'hideSearch' => true,
                    'pluginOptions' => [
                             'allowClear' => false,
                    ],
            ]);
            }
        ],

       [
        'class' => '\kartik\grid\ActionColumn',
        'header' => 'Actions',
        'template' => '{view}',
        'buttons' => [
                        ...
         ],

        'urlCreator' => function ($action, $model, $key, $index) {
                                ...
                        }

      ]

    ],

    ... // some settings
]);

我在某处做错了吗?谢谢。

【问题讨论】:

    标签: gridview yii2 jquery-select2


    【解决方案1】:

    这是用于过滤器中的 Select2(不是作为单元格值):

    [  
        'label' => Yii::t('app', 'Status'),
        'attribute' => 'jaStatus'
        'filterType' => \kartik\grid\GridView::FILTER_SELECT2,
        'filter' => [
            1 => 'Submitted', 
            2 => 'Processed', 
            3 => 'Approved', 
            4 => 'Declined'
        ],
    ],
    

    【讨论】:

    • 我想这个是给过滤器的。我想要实现的不是过滤器,而是每个模型元素“jaStatus”的 select2 Dropdown。
    • 哦,对了,对不起。我误会了。我会留下这个以防有人需要。
    【解决方案2】:

    请添加到 Select2 选项部分并定义“id”和“name”属性。这工作非常好。

    例子:

    return Select2::widget([
                        'model' => $model,
                        'attribute' => 'jaStatus',
                        'data' => [ 1 =>'Submitted', 2 =>'Processed', 
                                    3 =>'Approved', 4 =>'Declined'
                                   ],
                        'hideSearch' => true,
                        'options' => [
                                        'id' => 'jaStatus_'.$model->id,
                                        'name' => 'jaStatus_'.$model->id,
                                     ],
                        'pluginOptions' => [
                                 'allowClear' => false,
                        ],
                ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 2018-09-01
      • 2017-01-31
      • 1970-01-01
      • 2018-05-25
      相关资源
      最近更新 更多