码迷,mamicode.com
首页 > 其他好文 > 详细

Yii2.0 Gridview为某列增加属性

时间:2015-03-17 20:05:04      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

我们知道GridView组件非常方便,会自动生成数据表格。table tr td神马的全自动生成的。但是如果想定制化稍微有点难度。

比如想在某列td上应用样式。

老写法是这样的

 <?= GridView::widget([
        ‘dataProvider‘ => $dataProvider,
        ‘layout‘ => "{items}\n{pager}\n{summary}",
        ‘summary‘ => ‘<p class="summary">当前显示第{begin} - {end}条,共{totalCount}条。</p>‘,
        ‘columns‘ => [
            [‘class‘ => ‘yii\grid\SerialColumn‘],
            ‘name‘,
            [
                // 看这里
                ‘attribute‘ => ‘propertyValuesString‘,
                ‘format‘ => ‘html‘,
                ‘value‘ =>  function ($model, $key, $index, $column){
                    return ‘<div class="limit-width">‘. $model->propertyValuesString .‘</div>‘;
                }
            ],    
            ......

这样返回的html,td标签里面会套一层<div class="limit-width"></div>。

如果才能将class应用在td上呢

查了源码之后,可以这样:

         <?= GridView::widget([
      .......
‘columns‘ => [ [‘class‘ => ‘yii\grid\SerialColumn‘], ‘name‘,

// 新增的代码
            [
                ‘class‘ => ‘yii\grid\Column‘,
                ‘contentOptions‘ => [
                    ‘class‘ => ‘limit-width‘,
                ],
                ‘header‘ => ‘类目下的所有种类‘,
                ‘content‘ => function ($model, $key, $index, $column){
                    return $model->propertyValuesString;
                }
            ],

也就是说。该列我需要用到 yii/grid/Column类。该类有个contentOptions属性。接收匿名函数或数组。数组就是属性名和属性值得键值对。渲染时该列包含一个th和多个td。th内容从header中取,td就是content。

Yii2.0 Gridview为某列增加属性

标签:

原文地址:http://www.cnblogs.com/mafeifan/p/4345087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!