美文网首页
Yii CGridView CButtonColumn 根据内容

Yii CGridView CButtonColumn 根据内容

作者: 孤岛渔夫 | 来源:发表于2017-11-28 18:02 被阅读0次

    如何将CButtonColumn中的Label和imageUrl根据行数据的状态的不同展示不同的数据呢

    例如CGridView的行数据中包含锁定状态,在已经锁定的状态下显示解锁图片,在未锁定的状态下显示锁定的状态

    步骤一: 创建一个CButtonColumn的子类

    Yii::import(‘zii.widgets.grid.CButtonColumn’);

    class ExprButtonColumn extends CButtonColumn
    {
    protected function renderButton($id, $button, $row, $data)
    {
    if (isset($button['label']) && strpos($button['label'], ‘$’) > -1)
    {
    $button['label']= $this->evaluateExpression($button['label'],array(‘data’=>$data,’row’=>$row));
    }
    if (isset($button['imageUrl']) && strpos($button['imageUrl'], ‘$’) > -1)
    {
    $button['imageUrl']= $this->evaluateExpression($button['imageUrl'],array(‘data’=>$data,’row’=>$row));
    }
    parent::renderButton($id, $button, $row, $data);
    }
    }

    步骤二: 在模板中使用新类进行配置

    array(
    ‘class’=>’ExprButtonColumn’,
    ‘template’=>’{view}{lock}’,
    ‘buttons’=>array(
    ‘view’=>array(
    ‘label’=>’view project’,
    ‘url’=>’Yii::app()->controller->createUrl(“project/view”,array(“qid”=>$data->id))’,
    ),
    ‘lock’=>array(
    ‘label’=>’$data->lock_flag == “1″ ? “Unlock The Project” : “Lock The Project”‘,
    ‘imageUrl’=>’Yii::app()->request->baseUrl.”/images/”.($data->lock_flag == “1″ ? “unlock.gif” : “lock.gif”)’,
    ‘url’=>’Yii::app()->controller->createUrl(“project/lock”,array(“qid”=>$data->id))’,
    ),
    ),
    ),

    相关文章

      网友评论

          本文标题:Yii CGridView CButtonColumn 根据内容

          本文链接:https://www.haomeiwen.com/subject/msmebxtx.html