您的位置:首页 > 编程语言 > PHP开发

Yii CGridView CButtonColumn, 自定义按钮之二

2014-06-27 10:25 369 查看
如何将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))’,
),
),
),
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: