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

添加 CCheckBoxColumn :

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

[php]  view plain  copy
  1. <?php $this->widget('zii.widgets.grid.CGridView'array(  
  2.     'id'=>'post-grid',  
  3.     'dataProvider'=>$model->search(),  
  4.     'filter'=>$model,  
  5.     'columns'=>array(  
  6.         array(  
  7.             'selectableRows' => 2, //允许多选,改为 0 时代表不允许修改,1 的话为单选  
  8.             'class' => 'CCheckBoxColumn',//复选框  
  9.             'headerHtmlOptions' => array('width'=>'18px'),//头部的 html 选项  
  10.             'checkBoxHtmlOptions' => array('name' => 'myname','class'=>'myclass'), //复选框的 html 选项  
  11.         ),  
  12.         'post_id',  
  13.         'title',  
  14.         'content',  
  15.         'tags',  
  16.         'status',  
  17.         'create_time',  
  18.         'update_time',  
  19.         'author_id',  
  20.         'is_delete',  
  21.         array(  
  22.             'name'=>'is_delete',  
  23.             'value'=>'is_delete?"是":"否"'//value 是可以执行 php 语句的哦  
  24.             'filter' => array(0=>'否',1=>'是'), //自己定义搜索过滤的方式,这里为 是 和 否 的下拉菜单  
  25.             'htmlOptions'=>array('class'=>'delete'),  //可以定义 html 选项,这里是定义了带一个 delete 的类  
  26.         ),  
  27.         array(  
  28.             'class'=>'CButtonColumn',  
  29.         ),  
  30.     ),  
  31. ));   


修改ButtonColumn:

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

[php]  view plain  copy
  1. array(  
  2.           'class'=>'ButtonColumn',  
  3.           'template'=>"{view} {update}",  
  4.       ),  
    也可以自定义按钮:

[php]  view plain  copy
  1. array(  
  2.     'class'=>'ButtonColumn',  
  3.     'template'=>"{view} {update} {print}",  
  4.     'buttons'=>array(  
  5.             'print'=>array(  
  6.                     'label'=>'打印',  
  7.                     'url'=>'Yii::app()->controller->createUrl("print", array("id"=>$data->post_id))',  
  8.                     'options'=>array("target"=>"_blank"),  
  9.                 ),  
  10.             ),  
  11.         ),  


刷新时触发 Javascript:

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

[php]  view plain  copy
  1.     $js = <<<_JS_  
  2. function(){  
  3.     alert('The ajax finish');  
  4.   
  5. }  
  6. _JS_;  
  7.   
  8. $this->widget('zii.widgets.grid.CGridView'array(  
  9.     'id'=>'post-grid',  
  10.     'dataProvider'=>$model->search(),  
  11.     'filter'=>$model,  
  12.     'afterAjaxUpdate'=>$js,  //看这里,ajax 之后调用的 javascript 在这里....  
  13.     'columns'=>array(  
  14.         array(  
  15.             'selectableRows' => 2, //允许多选,改为 0 时代表不允许修改,1 的话为单选  
  16.             'class' => 'CCheckBoxColumn',//复选框  
  17.             'headerHtmlOptions' => array('width'=>'18px'),  
  18.             'checkBoxHtmlOptions' => array('name' => 'myname','class'=>'myclass'),  
  19.         ),  
  20.         ....  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值