gridview - 如何在 Yii 的 GRIDVIEW 中为每一行添加 TITLE 标签

标签 gridview yii cgridview

我想为 Gridview 中的每一行添加标题属性。 有什么方法可以让这个东西正常工作。

添加Class可以使用=>来实现

$rowCssClassExpression = '$data->id';

在网格行中添加标题属性 Gridview > TR > title ??

<table class="items">
<tbody>
<tr class="odd" title="**I need to put title dynamically to each row**">
<td style="width:18%;line-height:2em;">
<td style="width:22%;">Jay </td>
<td style="width:15%;">Sonet Systems</td>
<td style="width:10%;">98012269</td>
<td style="width:15%;">Moderate Risk</td>
<td style="width:20%;">Suicide Call Back Service</td>
</tr>
<tr class="even">
<td style="width:18%;line-height:2em;">
<td style="width:22%;"> </td>
<td style="width:15%;">Susan Rosenthal</td>
<td style="width:10%;"> </td>
<td style="width:15%;">Moderate Risk</td>
<td style="width:20%;">Suicide Line</td>
</tr>

最佳答案

您必须覆盖类 CDataColumn

下面是如何操作的示例,我从 Yii Website 获得了这段代码.

/**
 * DataColumn class file.
 * Extends {@link CDataColumn}
 */
class DataColumn extends CDataColumn
{
    /**
     * @var boolean whether the htmlOptions values should be evaluated. 
     */
    public $evaluateHtmlOptions = false;

     /**
     * Renders a data cell.
     * @param integer $row the row number (zero-based)
     * Overrides the method 'renderDataCell()' of the abstract class CGridColumn
     */
    public function renderDataCell($row)
    {
            $data=$this->grid->dataProvider->data[$row];
            if($this->evaluateHtmlOptions) {
                foreach($this->htmlOptions as $key=>$value) {
                    $options[$key] = $this->evaluateExpression($value,array('row'=>$row,'data'=>$data));
                }
            }
            else $options=$this->htmlOptions;
            if($this->cssClassExpression!==null)
            {
                    $class=$this->evaluateExpression($this->cssClassExpression,array('row'=>$row,'data'=>$data));
                    if(isset($options['class']))
                            $options['class'].=' '.$class;
                    else
                            $options['class']=$class;
            }
            echo CHtml::openTag('td',$options);
            $this->renderDataCellContent($row,$data);
            echo '</td>';
    }
}

如何使用他的:

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'article-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
        'id',
        'title',
        array(
            'class'=>'DataColumn',
            'name'=>'name',
            'evaluateHtmlOptions'=>true,
            'htmlOptions'=>array('title'=>'{$data->name}'),
        ),
        array(
            'class'=>'CButtonColumn',
        ),
    ),
));

关于gridview - 如何在 Yii 的 GRIDVIEW 中为每一行添加 TITLE 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417432/

相关文章:

android - 从具有内部存储的Android手机上的图库中获取图像

android - Android 中的 GMGridView 等价物

yii - 您可以从yii2-basic运行控制台作业吗?

php - YII CGridView。试图显示其他表的属性。关系不工作

sorting - 如何对具有HAS_MANY关系的cgridview列进行排序?

mysql - Yii CGridView 基于关系 HAS_MANY 数据建表

c# - 使整行在 GridView 中可点击

c# - 如何让gridview中的一个数据字段成为一个url

php - 您如何动态显示用户配置文件?

yii - 在 Yii 1.1 内的 CGridView 中显示 Iframe