放牧代码和思想
专注自然语言处理、机器学习算法
    This thing called love. Know I would've. Thrown it all away. Wouldn't hesitate.

Yii控制单元格的宽度

如果使用默认的话,很容易挤成一团:

使用如下代码可以改变宽度:

array(
            'class'=>'CButtonColumn',
            'template'=>'{new}{addchild}{view}{update}{delete}',
            'buttons' => array(
                                'new' => array(
                                        'label' => 'Add a new subject',
                                        'imageUrl' => Yii::app()->request->baseUrl . '/images/new.png',
                                        'url' => 'Yii::app()->createUrl("subject/create", array("pid"=>$data->pid))'
                                ),
                                'addchild' => array(
                                        'label' => 'Add a subject as child of current subject',
                                        'imageUrl' => Yii::app()->request->baseUrl . '/images/addchild.png',
                                        'url' => 'Yii::app()->createUrl("subject/create", array("pid"=>$data->id))'
                                ),
                         
            ),
            'htmlOptions'=>array(
                        'width'=>'80',
                        'style'=>'text-align:center',
                                ),
        ),

注意上面的htmlOptions部分。另外摘录一份说明:

首先通过下面这段代码,我们在action中生成了一个dataprovider可以提供给view中的widget调用

  1. $userdata = new cactivedataprovider('user', array(

  2.    'pagination'=>array(

  3.            //所以关于pagination的设置都可以在这里进行

  4.            'pagesize'=>10,

  5.    ),

  6.    'sort' => array(

  7.        //所以关于csort的设置都可以在这里进行

  8.        'defaultorder' => 'username'

  9.    )

  10. ));

复制

然后,我们可以在view中调用cgridview widget

  1. $this->widget('zii.widgets.grid.cgridview', array(

  2.    'dataprovider' => $userdata,

  3.    'columns' => array(

  4.        'id',

  5.        'username',

  6.        'fullname',

  7.        array(

  8.            'datafield' => 'email',

  9.            'dataexpression' => 'chtml::mailto($data->email)',

  10.            'htmlOptions'=>array(

  11.                'width'=>'60',

  12.                'style'=>'text-align:center',

  13.             )),

  14.        'last_login',

  15.        array(

  16.            'class' => 'crudcolumn',

  17.            'header' => '操作',

  18.            'template'=>'{view}{update}{delete}',   //要显示的按钮,如果需要特殊的按钮,可以找到ButtonColumn类,重新定义

  19.        )

  20.    ),

  21. ));

复制

代码中我们看到了dataprovider这个属性使用了$userdata变量。 在columns属性中我们对需要显示的字段和显示方式做了一定的设置: 在这里我们要求显示 'id', 'username', 'fullname', 'email', 'last_login' 几个字段.

在email字段中,我们使用了具体设置,用表达式的方式为email制作了链接效果。 在表达式中我们可以用:
$grid (当前gridview实例),
$row(当前行,index从0开始计算),
$data(当前行的model实例),
$this(当前列的实例)。

在最后我们用crudcolumn生成了操作列, 可以实现查看,修改,删除操作。

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » Yii控制单元格的宽度

评论 欢迎留言

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

我的作品

HanLP自然语言处理包《自然语言处理入门》