是否可以隐藏Yii2列?

时间:2017-10-27 09:20:45

标签: php jquery yii2

在Yii2中我们有这样的GridView:

<?= GridView::widget([
        'dataProvider' => $dataProvider,
      //  'filterModel' => $searchModel,
        'layout' => "{items}\n{summary}\n{pager}",
        'columns' => [
         //   ['class' => 'yii\grid\SerialColumn'],

            'id',                
            'size',               
            'program' => [

                'label' => 'Program',
                'value' => function($data)
                    {
                       return Html::a($data->program, ($data->program), ['target' => '_blank']);
                    },
                'format' => 'raw',

            ],

             'version',
             'platform',                 
             'license',                

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

是否可以隐藏/显示列,如果我们点击,例如点击“隐藏平台”按钮,然后显示“显示平台”,或者可能是复选框。

我无法理解如何做到这一点,请帮助我

3 个答案:

答案 0 :(得分:6)

您可以这样做: - 为要处理的列命名,例如一个ID

[
    'class'          => 'yii\grid\SerialColumn',
    'options' => [ 'id' => 'serial-column' ],
    'width'          => '1%',
    'vAlign'         => 'middle',
    'hAlign'         => 'right',
]
  • 然后修改css以使该列在开头消失

    #serial-column {display: none}

  • 然后您将js应用于复选框以使其显示:

    的jQuery( '#一些-chkbox')。点击(函数(){     。jQuery的( '#串行列')切换(); })

答案 1 :(得分:3)

是的,您可以使用“可见”属性有条理地隐藏和显示列。

[
  'attribute' => 'email',
  'label' => 'Email',
  'visible' => ($_GET['type']) == 'b') ? true : false,
 ],

答案 2 :(得分:0)

我相信this正是您所寻找的。

简而言之 - 您可以添加自定义链接和脚本来切换gridview表的列。