Yii CGridView 基本使用(二)CCheckBoxColumn ButtonColumn afterAjaxUpdate

添加 CCheckBoxColumn :

有时也许我们会需要一个复选框,来对每一行进行选择,这时,我们可以增加一列,用 CCheckBoxColumn 类:

<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'post-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		array(
			'selectableRows' => 2, //允许多选,改为 0 时代表不允许修改,1 的话为单选
			'class' => 'CCheckBoxColumn',//复选框
			'headerHtmlOptions' => array('width'=>'18px'),//头部的 html 选项
			'checkBoxHtmlOptions' => array('name' => 'myname','class'=>'myclass'), //复选框的 html 选项
		),
		'post_id',
		'title',
		'content',
		'tags',
		'status',
		'create_time',
		'update_time',
		'author_id',
		'is_delete',
        array(
            'name'=>'is_delete',
            'value'=>'is_delete?"是":"否"', //value 是可以执行 php 语句的哦
            'filter' => array(0=>'否',1=>'是'), //自己定义搜索过滤的方式,这里为 是 和 否 的下拉菜单
            'htmlOptions'=>array('class'=>'delete'),  //可以定义 html 选项,这里是定义了带一个 delete 的类
        ),
		array(
			'class'=>'CButtonColumn',
		),
	),
));

修改ButtonColumn:

注意到列表每一项的最后三个小图标吗?不需要的话当然是直接删了,那要是只要其中某几个呢?可以加一个 template 参数:

		array(
            'class'=>'ButtonColumn',
            'template'=>"{view} {update}",
        ),

也可以自定义按钮:

array(
    'class'=>'ButtonColumn',
    'template'=>"{view} {update} {print}",
	'buttons'=>array(
			'print'=>array(
					'label'=>'打印',
					'url'=>'Yii::app()->controller->createUrl("print", array("id"=>$data->post_id))',
					'options'=>array("target"=>"_blank"),
				),
			),
        ),

刷新时触发 Javascript:

如果你想在每次搜索之后触发一些 Javascript ,Yii 也提供了这个选项,你只要写成一个函数然后设置 afterAjaxUpdate 就好,记住这只是在 ajax 请求完成之后调用的,如果你想在 页面 一开始加载完成就调用的话需要另外加到页面的  Javascript

    $js = <<<_JS_
function(){
    alert('The ajax finish');

}
_JS_;

$this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'post-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
    'afterAjaxUpdate'=>$js,  //看这里,ajax 之后调用的 javascript 在这里....
	'columns'=>array(
		array(
			'selectableRows' => 2, //允许多选,改为 0 时代表不允许修改,1 的话为单选
			'class' => 'CCheckBoxColumn',//复选框
			'headerHtmlOptions' => array('width'=>'18px'),
			'checkBoxHtmlOptions' => array('name' => 'myname','class'=>'myclass'),
		),
        ....

PS:在这里只谈我常用的部分,详细请看文档:CGridView

时间: 2024-10-14 00:02:41

Yii CGridView 基本使用(二)CCheckBoxColumn ButtonColumn afterAjaxUpdate的相关文章

Yii CGridView 之 SQL 语句

在CGridView里,有时候需要用到复杂的查询时,可用 CSqlDataProvider替换CActiveDataProvider, CSqlDataProvider 可用复杂的查询语句,例子如下: 1.在控制器中: public function actionIndex() { $count = Yii::app()->db->createCommand('SELECT COUNT(*) FROM app_item')->queryScalar(); $sql = 'SELECT *

Yii CGridView 关联表搜索排序实例

在这篇文章中,我准备讲解如何在CGridView中搜索或者排序关联表中的某一行,通过给Yii Blog demo添加一个list页面. 首先,检查你的blog demo里的protected\models\Comment.php,确保Comment模型有一个search的方法,如果没有,就用gii生成一个,我下载到的blog demo里倒是没有. 然后,写代码的时间到了,我们从 CommentController 开始,我们给它加一个 actionList: 1 2 3 4 5 6 7 8 9

Yii CGridView 基本使用(三)关联表相关字段搜索

添加 关联表 相关字段的搜索: 先说一句,我们在这里只谈 "一对多" 的关联搜索,首先,不要忘了我们的数据库,忘记的同学请戳这里:这里,可以看到在 tbl_post 中是有一个外键关联到 tbl_user 表的,用以查找作者的相关信息.建了数据库之后,看看我们生成的 Yii 代码的 POST 的 Model, 里面的 realtion 如下(忽略 comment 的): /** * @return array relational rules. */ public function r

yii 整合phpqrcode生成二维码附在线演示地址

1,先到官网下载包  http://phpqrcode.sourceforge.net/ 下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2. phpqrcode.php提供了一个关键的png()方法,其中参数$text表示生成二位的的信息文本:参数$outfile表示是否输出二维码图片 文件,默认否:参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M

Yii CGridView 基本使用(一)初展身手

在 Yii 自动生成的代码里,我们总能在 admin 的界面看到 CGridView 的身影.这是一个很好用的展示数据的表格控件,用的好可以明显地加快开发进度.下面就让我们来探索一下 CGridView 的基本使用吧: 简单起见,我们的代码就用 Yii demo 中的 blog 例子来做修改.首先,这是修改后的部分 Mysql 语句: drop table if exists `tbl_user`; CREATE TABLE tbl_user ( `user_id` INTEGER NOT NU

Yii框架(Yii Framework)部署

一.下载Yii 在部署yii框架之前首先要搭建好php环境,这里就不说搭建环境的问题了(这里已经部署好wampserver了),环境搭建好后,到yii官方网站下载yii framework:http://www.yiiframework.com/ 将下载下来的文件夹解压,放置你的php环境目录里面:这里我们需要的只有两个文件夹framework和requirements:framework是框架文件,这个是必须的:requirements是环境检测文件:demos是示例. 然后检测一下当前的环境

yii依赖注入

为了降低代码耦合程度,提高项目的可维护性,Yii采用多许多当下最流行又相对成熟的设计模式,包括了依赖注入(Denpdency Injection, DI)和服务定位器(Service Locator)两种模式. 关于依赖注入与服务定位器, Inversion of Control Containers and the Dependency Injection pattern 给出了很详细的讲解,这里结合Web应用和Yii具体实现进行探讨,以加深印象和理解. 这些设计模式对于提高自身的设计水平很有

依赖注入和依赖注入容器

http://www.digpage.com/di.html#di 为了降低代码耦合程度,提高项目的可维护性,Yii采用多许多当下最流行又相对成熟的设计模式,包括了依赖注入(Denpdency Injection, DI)和服务定位器(Service Locator)两种模式. 关于依赖注入与服务定位器, Inversion of Control Containers and the Dependency Injection pattern 给出了很详细的讲解,这里结合Web应用和Yii具体实现

程序员修炼之路

0.前言:在路上,再上路 在前言<程序员修炼之路-(0)前言:在路上, 再上路>中已经对知识体系进行了梳理,主要分为问题定义.算法与数据结构.系统平台API.编程语言实现.代码设计.测试验证等等.目前集中精力编写算法与数据结构部分,这可能也是最艰难的一部分.其他部分之前零零散散有所涉及,之后再慢慢补充. 1.计算机数学 离散数学与具体数学. 2.算法分析设计 对于这一部分的内容编排,主要以<算法设计与分析基础>.<算法>以及LeetCode算法题中的问题分类为横向,以&