CButtonColumn详解

CGridView是Yii中的一个灵活的插件,例如它使用CButtonColumn来为每行生成按钮.在这里我们会介绍怎么根据需求自定义按钮.

默认按钮
默认情况下 CButtonColumn 包含三个按钮:{查看(view)},{更新(update)}和{删除(delete)} ,它们的含义是显而易见的.

自定义它们的外观和行为的最简单的方法是使用CButtonColumn的属性,如:

updateButtonImageUrl (更新update 按钮的图片路径),

updateButtonLabel (更新按钮的标签,没有经过HTML编码) ,

updateButtonOptions (更新按钮的HTML选项,向其他插件的htmlOptions 属性一样)和 updateButtonUrl (通过PHP表达式得出的URL).你可以找到每个按钮各自的属性.

此外:

  1. 只有删除(delete)按钮拥有 deleteConfirmation (string) 属性,它用作点击删除按钮后显示的自定义确认信息.
  2. 在 xxxButtonUrl 属性的 PHP 表达式中 $row 表示行号(从0开始),$data 表示数据模型(model),$this 表示列对象.
  3. 当你设置 xxxButtonImageUrl 


更灵活的定制

通过上面的属性自定义多个按钮在代码中时很混乱的,通过 模板(template) 和 按钮(buttons) 属性可以更灵活的自定义多个按钮。

你可以通过一下设置模板(template)属性的方式来构建或移除按钮.'header'  =>  '操作'  

的属性为空或 false 时,文本形式的链接将会代替图片显示.
array(   
    'class'=>'CButtonColumn',   
    'header' => '操作',   
    'template'=>'{delete}{update}',                     
),   

在上例 CGridView 的按钮列中没有查看(view)按钮,而删除(delete)和更新(update)按钮为默认设置(删除按钮放到第一个位置).

隐藏按钮{update}{delete}

array(   
    'class'=>'CButtonColumn',   
    'deleteButtonOptions'=>array('style'=>'display:none'),   
    'updateButtonOptions'=>array('style'=>'display:none'),   
    'template'=>'{view}{update}{delete}',   
),   


同样你可以通过此属性添加新按钮 :{up}{down}

array   
(   
    'class'=>'CButtonColumn',   
    'template'=>'{up}{down}{delete}',   
)    

对于新的按钮(当然已有的也一样)你必须指定外观和行为.CButtonColumn 的属性 buttons 就是用来做这的,它是由每个按钮的ID(名称必须和template 提供的相同)对应其属性组成的数组.

你可以使用一下代码:

'buttonID' => array   
(   
    'label'=>'...',     //按钮的文本标签.   
    'url'=>'...',       //使用 PHP 表达式得出按钮的 URL.   
    'imageUrl'=>'...',  //按钮的图片路径.   
    'options'=>array(), //按钮的 HTML 选项.   
    'click'=>'...',     //当点击按钮时调用的 javascript 函数   
    'visible'=>'...',   //确定按钮是否显示的 PHP 表达式   
)   

请注意: 当使用文字链接时 label 属性就会显示,当使用图片链接时 label 属性会被渲染为图片的 alt 参数.如果你想修改图片的 tooltip 文字,你可以修改 options 属性中的 title 参数,如:

'buttonID' => array   
(   
    'label'=>'Text shown as alt text to image or as label to text link...',   
    'options'=>array('title'=>'Text shown as tooltip when user hovers image...'),   
)    

此外:

  1. 在 url 和 visible 属性的 PHP 表达式中 $row 表示行号(从0开始),$data 表示数据模型(model),$this 表示列对象.
  2. 当你设置 xxxButtonImageUrl 的属性为空或 false 时,文本形式的链接将会代替图片显示.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值