我有一个这样的屏蔽输入:
<?= $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'],
],
]); ?>
关于php - 如何在 yii2 kartik gridview 中使用屏蔽输入或下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40240295/