[
            'header' => '操作',
            'class' => 'yii\grid\ActionColumn',
            'template' => '{view} {update} {delete} {abc}', //{view} {update} {delete}系统定义的,{abc}自定义的
            'buttons' => [
                'view' => function ($url, $model, $key) {  //$url是系统定义的三个操作的url,$model为数据对象,$key为循环的键值(用处不大)
                    return $key == 1 ? null : \common\components\MyHelper::mybutton('/xx/xx?id=' . $key, 'view', ['title' => '标签的title属性']);
                },
                'delete' => function ($url, $model, $key) {
                    return $key == 1 ? null : \common\components\MyHelper::mybutton($url, 'delete');
                },
                'abc'=>function(){return '<a>abc</a>';}
            ]
        ],

MyHellper代码如下:

  /**
     * 生成操作按钮
     * @param $url
     * @param string $type
     * @param array $options
     * @return string
     */
    public static function mybutton($url, $type = 'update', $options = [])
    {
        if ($type == 'view') {
            return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, ArrayHelper::merge([
                'title'     => Yii::t('yii', 'View'),
                'data-pjax' => '0',
            ], $options));
        }
        if ($type == 'update') {
            return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, ArrayHelper::merge([
                'title'     => Yii::t('yii', 'Update'),
                'data-pjax' => '0',
            ], $options));
        }
        if ($type == 'delete') {
            return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, ArrayHelper::merge([
                'title'        => Yii::t('yii', 'Delete'),
                'data-confirm' => Yii::t('yii', 'Are you sure you want to delete this item?'),
                'data-method'  => 'post',
                'data-pjax'    => '0',
            ], $options));
        }
    }

 完整的GridView写法

<?= \yii\grid\GridView::widget([
    'dataProvider' => $dataprovider,
    'filterModel' => $searchmodel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],//生成序列号
        'id', // 直接显示字段
'name:text:名称', //name字段的内容格式化为定义的text类型,表头内容设置为“名称” [ 'attribute'=>'field', // 关联的字段名 'filter'=>['1'=>'x','2'=>'y','3'=>'z'], // 这会生成一个select下拉框(<option value="1">x</option>)的查询字段 ], [ 'header' => '表头th中显示的内容', 'content' => function ($data) { // $data为循环变量 //...一些处理代码 return $content; // 返回要显示的内容,无查询框 } ], [ 'label'=>'链接', // 表头th中内容,有header时,优先显示header的内容 'value'=>function($data){return Url::to('controller/action');}, // 要显示的列表项内容,优先显示content内容 'filter'=>'', // 为空表示不显示查询框 'headerOptions' => ['width' => '250'], // 可以添加标签属性 ], 'time:datetime', // format属性简写方式如:['format'=>'text'] ],

    //'layout' => "{items}\n{summary}\n<div style=\"text-align:center;\">{pager}</div>",
    //'summary' => false

]) ?>

详细的gridview用法可以参考:http://www.yiichina.com/doc/api/2.0/yii-grid-gridview

 

posted on 2015-04-29 15:05  浊浊然  阅读(1006)  评论(0编辑  收藏  举报