Yii2.0 Gridview为某列增加属性

我们知道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。

时间: 2024-10-24 02:05:07

Yii2.0 Gridview为某列增加属性的相关文章

Yii2.0 GridView 的强大功能

1. 去除头顶的 第1条数据 共两条 代码如下 1 <?= GridView::widget([ 2 'dataProvider' => $dataProvider, 3 'filterModel' => $searchModel, 4 'columns' => [ 5 ['class' => 'yii\grid\SerialColumn'], 6 7 'id', 8 'name', 9 'sort_order', 10 'status', 11 12 ['class' =&

[moka同学笔记]Yii2.0给一张表中增加一个属性

1.model中建立关联 public function getUser(){ return$this->hasOne(User::className(),['id'=>'uid']) ; } 2.在视图中 <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ // ['class' => 'yii\grid\SerialColumn'], 取消掉编号 ['attribute'=&g

EntityFramework 5.0 CodeFirst 教程03-数据结构的定义/列的属性

---------------------目录-------------------------- EntityFramework 5.0 CodeFirst 教程03-数据结构的定义/列的属性 (2015-07-22 17:30) EntityFramework 5.0 CodeFirst 教程02-删除和修改/架构改变异常的处理 (2015-07-14 17:50) EntityFramework 5.0 CodeFirst 教程01-搭建环境和快速上手 (2015-07-13 10:48)

yii2的gridview批量删除

gridview区 <?= GridView::widget([ 'options' => [ 'class' => 'grid-view', 'style'=>'overflow:auto', 'id' => 'grid', ], 'dataProvider' => $dataProvider, 'showFooter' => true,//显示footer行 //'filterModel' => $searchModel, 'layout'=> '

Yii2.0 常用的变量、方法、函数

<?php     defined('YII_DEBUG') or define('YII_DEBUG', true);  //当在调试模式下,应用会保留更多日志信息,如果抛出异常,会显示详细的错误调用堆栈.因此,调试模式主要适合在开发阶段使用,YII_DEBUG 默认值为 false.    return $this->render('list');                        //加载视图模板,一定要return 否则会空白    $this->render('_o

Yii2.0高级框架数据库增删改查的一些操作(转)

yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 ----------------------------------------------------------------------------------------------------- User::find()->all();    //返回所有用户数据:User::findOne($id);   //返回 主键 id=1  的一条数

Yii2.0高级框架数据库增删改查的一些操作

yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 ----------------------------------------------------------------------------------------------------- User::find()->all();    //返回所有用户数据:User::findOne($id);   //返回 主键 id=1  的一条数

yii2之GridView小部件

GridView小部件用于展示多条数据的列表.GridView小部件的使用需要数据提供器即yii\data\ActiveDataProvider的实例作为参数,所以 第一步就是要在控制器方法中创建这个实例然后传给视图,下面以我做的一个demo为例子进行讲解. 控制器LifeController代码: //生活记录列表 public function actionIndex() { $searchModel = new Life(['scenario' => Life::SCENARIO_SEAR

gridview 某一列換行(自動)

gridview里有一列绑定的数据很长,显示的时候在一行里面显示,页面拉得很宽.原因是连续英文段为一个整体导致的, 在RowDataBound中添加上了一句e.Row.Cells[2].Style.Add("word-break", "break-all")就可以.如果要给所有的列增加此属性:protected void Page_Load(object sender, EventArgs e)    {        //正常换行        GridView1