如何在Yii2 Katrik GridView中使用掩码输入或下拉列表?

3

我有一个像这样的掩码输入:

    <?= $form->field($model, 'ip')->widget(\yii\widgets\MaskedInput::className(),[
                                                    'clientOptions' => [
                                                        'alias' => 'ip',
                                                        'groupSeparator' => '.',
                                                        'autoGroup' => true,
                                                    ],
                                                ]);
                                             ?>

我在我的index文件中使用了可编辑字段(IP地址)的Kartik GridView:

<?=    GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'pjax' => true,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        [
            'class' => 'kartik\grid\EditableColumn',
            'attribute' => 'ip',
        ],    
        'objectID',
        'ownerID',
        'subnetID',

        ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>

当用户在gridview中更新ip字段时,我该如何设置掩码输入?此外,我应该如何使用下拉列表来更新字段?


对于掩码输入,请使用 'mask' => '9[9][9].9[9][9].9[9][9].9[9][9]' 属性来表示 IP。 - Nitin Pund
我们无法在Kartik GridView中设置'mask'属性!!! 设置未知属性:kartik\grid\EditableColumn::mask - amir zaghari
嗯,你的问题似乎有所不同。 - Nitin Pund
1个回答

3
您可以在“过滤器”上下文中使用 MaskedInput 小部件作为示例。
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'pjax' => true,
'columns' => [
    ['class' => 'yii\grid\SerialColumn'],
    [
        'attribute' => 'ip',
        'filter'=> MaskedInput::widget([
            'name'=>'MyFilterModelName[ip]',
            'clientOptions' => [
                 'alias' => 'ip',
             ],
        ]);
    ],    
    'objectID',
    'ownerID',
    'subnetID',

    ['class' => 'yii\grid\ActionColumn'],
],

否则,作为行字段,您可以将MaskedInput小部件作为匿名函数的结果传递:

]); ?>

<?=    GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'pjax' => true,
'columns' => [
    ['class' => 'yii\grid\SerialColumn'],
    [
        'attribute' => 'ip',
        'value' => function($model) {
             return MaskedInput::widget([
                'name'          => 'ip_' . $model->id,
                'value'         => $model->ip,

                'clientOptions' => [
                     'alias' => 'ip',
                ],
            ])
        },
    ],    
    'objectID',
    'ownerID',
    'subnetID',
    ['class' => 'yii\grid\ActionColumn'],
],

InputMask与Yii2集成,可高度配置。详见此处此处获取技巧和诀窍。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接