1

ここのドキュメントに従っていますhttp://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/

だから私は次のことを視野に入れています

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'item-table-grid',
'dataProvider'=>$model->search(),
'itemsCssClass'=>'item-table-grid',
'columns'=>array(
    'customer_name',
    array(
        'name'=>'Edit',
        'value'=>array($model, 'editLink'),
    ),
),
));

そして、ここにモデルの editLink 関数があります

public function editLink($data, $row) {
    $link = '';
    if ($data->is_draft) {
        $link = '<a href="customer/update/'.$data->id.'">Edit</a>';
    }
    return $link;
}

私が抱えている問題は、戻り値がエンコードされているため、 <a href=...> を取得することです

値をエンコードしないように CGridView に指示する方法はありますか?

ありがとう

4

3 に答える 3

5

ソリューション A:

array(
    'name'=>'Edit',
    'type' => 'raw',
    'value'=>array($model, 'editLink'),
),

B: (十分ではない)

array(
    'name' => 'Edit',
    'class' => 'CLinkColumn',
    'urlExpression' => '$data->is_draft ? "customer/update/{$data->id}" : "#disabled"',
    'label' => 'edit',
),
于 2012-05-28T07:38:30.963 に答える
2

これを試して ..

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'item-table-grid',
'dataProvider'=>$model->search(),
'itemsCssClass'=>'item-table-grid',
'columns'=>array(
    'customer_name',
    array(
'name'=>'Edit',
'type' => 'raw',
'value'=>array($model, 'editLink'),

)、)、));

于 2012-05-28T08:15:01.757 に答える
0
my code in CGridView

array(
        'name'=>'Post Content',
        'value'=>array($model,'postContent'),
        'type'=>'html',
        'htmlOptions'=>array('width'=>'380'),
    ),

in Model I have the following method

public function postContent($data){
    echo $data->content;
}

 it works fine but when i click on another page of my pagination
then it doesn't works means it work only on Index page first time opened...

plz any solution....???
于 2012-11-07T13:35:46.523 に答える