2011-12-01 199 views
1

我想放入CDetailView窗口小部件的一行中顯示另一個窗口小部件的文本。我如何鏈接這兩個?放入CDetailView窗口小部件另一個窗口小部件

$this->widget('zii.widgets.CDetailView', array(
'data'=>$model, 
'attributes'=>array(
    array( 
       'label'=>'TextHighlighter', 
       'type'=>'raw', 
       'value'=>'this system.web.widgets.CTextHighlighter widget', 
     ), 
),)); 

回答

1

擴展CFormatter,創建一個自定義類,將調用CTextHighlighter小部件,並返回渲染值。

比你會格式化傳遞到的DetailView

$myCustomformat=new myFormat(); 
$this->widget('zii.widgets.CDetailView', array(
'data'=>$model, 
'formatter'=>$myCustomformat, 
'attributes'=>array(
    array( 
       'label'=>'Label', 
       'type'=>'texthighligter', 
       'value'=>'$model->data', 
     ), 
),)); 

這就需要從你的myFormat類,它返回CTextHighlighter輸出formatTexthighligter()方法。

或者在這裏讀一些其他的方法http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/