CButtonColumn详解

来源:互联网 发布:淘宝客通用计划有用吗 编辑:程序博客网 时间:2024/05/17 00:10

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 时,文本形式的链接将会代替图片显示.


原创粉丝点击