在上一篇 Yii2的GridView使用大全 --- 18个问答 我们对GridView挂件进行了整体的讲解,列举出18项使用技巧,接下来针对GridView中的每个column列一一说明。

在GridView中一共有5种列

  • SerialColumn
  • ActionColumn
  • DataColumn
  • RadioButtonColumn
  • CheckboxColumn

本篇我们先说说SerialColumn,这也是比较简单的一种列的类型。从含义上说此列负责显示表格行号,从1开始计数。

SerialColumn并非列的默认选项,因此我们需要指定,一般写法如下

这是最简单的用法,SerialColumn还有一些细节,这里给大家分享下。

因为SerialColumn也继承于父类Column,因此它拥有Column的公共属性和方法,我们可以用来晚上SerialColumn。

列头部问题

你一定注意到了在SerialColumn的头部是一个#符号,我们第一件事情就是将其换掉,你可以设置成任何你想设置的样子。

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        [
            'class' => 'yii\grid\SerialColumn',
            'header' => '@'
        ],
        ...
    ]
]);
?>

对,设置其header属性即可,结果达到

样式问题

虽然说对于SerialColumn列单元格的内容我们无法控制,但是我们可以通过contentOptions属性来控制其颜色,如下代码

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        [
            'class' => 'yii\grid\SerialColumn',
            'contentOptions' => ['style'=>'color:red']
        ],
        ...
    ]
]);
?>

除了样式,还可以增加比如id、class等html属性,效果图

由此你也知道,我们也可以通过headerOptions来控制列表头的样式。

visible

最后SerialColumn也支持visible属性,可以通过设置visible=false来隐藏一列,visible接收表达式,比如会员ID=1的隐藏SerialColumn,可以如下写法。

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        [
            'class' => 'yii\grid\SerialColumn',
            'visible' => Yii::$app->user->id == 1 ? false : true
        ],
        ...
    ]
]);
?>

小结

以上就是SerialColumn的用法及其配置方法,这是最简单的列类型,明天为你带来DataColumn的使用教程。