Yii CGridView CButtonColumn, 自定义按钮之二

如何将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))’,
 ),
 ),
 ),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值