Yii CGridView自定义列标题排序图标和行链接

时间:2014-01-27 21:53:30

标签: php yii

我正在处理Yii中的CGridView小部件。我已对其中的大部分进行了自定义,但似乎无法自定义单击列标题以对数据进行排序时显示的图标。 (根据排序顺序向上或向下指向的小箭头)此外,添加'columns'选项后图标完全消失。我视图中的部分代码如下:

<?php
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'pager' => array('cssFile' => '/css/myCss.css'),
'cssFile' => '/css/myCss.css',
'summaryText' => 'Showing {start} - {end} of {count} data rows.',
'htmlOptions' => array('id' => 'grid'),
'columns' => array(
    array(
        'name' => 'name',
        'value' => '$data->name',
    ),
    array(
        'name' => 'description',
        'value' => '$data->description',
    ),
    array(
        'name' => 'date',
        'value' => '$data->date',
    ),
),
));
?>

Yii的文档根本不清楚,似乎没有任何人(我能找到)也有这个问题。

- &gt;另外,一个相关的问题: 我如何使每一行成为锚链接?我需要每一行都是一个链接,以查看有关所单击行的详细信息。我知道cgridview提供了查看,编辑和删除行末的链接(如果被告知),但是是否可以将整行作为单个锚链接?我知道如何在html中手动执行此操作,但不知道如何在cgridview中执行此操作。

2 个答案:

答案 0 :(得分:1)

我不确定你正在使用的是哪个版本的Yii,但让我们试试这段代码

<?php

'columns' => array(
array(
    ...
    'type' => 'html',
    'value'=>'CHtml::tag("a",array("class"=>"your-icon-class", "href"=>"#"))',
),

答案 1 :(得分:1)

如果要更改表格标题中的图标,则需要覆盖类的样式(.grid-view table.items th a.desc.grid-view table.items th a.asc)。您还可以通过指定选项'cssFile'=>false来禁用表格的视觉样式,并为网格设置自定义样式。 为了使整个字符串锚链接很可能您将需要使用必要的链接URL插入表的每个单元格。为此,请添加以下对字符串数组的描述:

'columns'=>array(
    ...
    array(         
       'name'=>'name',
       'value'=>'CHtml::link($data->name, "#myAnchor")',
       'type'=>'html'
    ),
    ...
)