2013-07-02 50 views
2

我想爲Gridview中的每一行添加標題屬性。 有什麼辦法可以讓這件事情起作用。如何在Yii的GRIDVIEW中爲每個行添加TITLE標記

添加類可以通過使用=>

$rowCssClassExpression = '$data->id'; 

添加標題屬性在網格行的GridView> TR>標題來實現??

<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> 

回答

2

您必須重寫類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', 
     ), 
    ), 
)); 
相關問題