php - 如何在 yii2 kartik gridview 中使用屏蔽输入或下拉列表?

标签 php yii2

我有一个这样的屏蔽输入:

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

我的索引文件中有一个带有可编辑字段 (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 字段时,如何设置屏蔽输入? 还有我应该如何使用下拉列表来更新字段?

最佳答案

例如,您可以在“过滤器”上下文中使用 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 集成并且高度可配置。 Selenium herehere获取提示和技巧。

关于php - 如何在 yii2 kartik gridview 中使用屏蔽输入或下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40240295/

相关文章:

php - 使用 MySQL 的随机行选择返回 NULL

php - 相当于 mysql_num_rows 或 mssql_num_rows 的 PDO

javascript - 如何通过POST方法以隐藏形式发送信息?

php - yii2如何获取根目录

redis - 如何修复 yii2 中的 redis session 它确实登录了我的用户

php - TCPDF 列表项边距

php - 动态创建 PHP 类函数

php - 如何在 Yii2 中的 ActiveField 的 form-group div 中添加 css 类?

mysql - 为什么 Yii2 ActiveRecord joinWith 进行 2 个选择

php - 在 Yii2 中使 URL 不区分大小写