你好,游客 登录 注册 搜索
背景:
阅读新闻

Yii CGridView 基本使用

CCheckBoxColumn ButtonColumn afterAjaxUpdate

[日期:2015-01-11] 来源:Linux社区  作者:jcjc918 [字体: ]

添加 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

linux
【内容导航】
第1页:初展身手 第2页:CCheckBoxColumn ButtonColumn afterAjaxUpdate
第3页:关联表相关字段搜索
相关资讯       Yii  CGridView 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款