`

Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示

    博客分类:
  • PHP
 
阅读更多

 

我们在用表格展示数据并管理的时候,可能会需要用到按钮来操作某一行数据,比如查看,修改,删除!

Yii内置了3种按钮:查看,修改和删除,你可以自定义样式、事件。详细配置见类参考:CButtonColumn.

如果需要自定义按钮绑定指定的事件该怎么办呢?

幸运的是Yii提供了自定义按钮的办法.看代码:

在视图文件里面:

 

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'xx-xx-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'pager'=>array(
            'class'=>'CLinkPager',
            'nextPageLabel'=>'下一页',
            'prevPageLabel'=>'上一页',
            'header'=>'',
    ),
    'summaryText'=>'<font color=#0066A4>显示{start}-{end}条.共{count}条记录,当前第{page}页</font>',
    'columns'=>array(
        array(
                'name'=>'id',
                'htmlOptions'=>array('width'=>'25'),
                'sortable'=>false,
        ),
        array(
            'class'=>'CButtonColumn',
            'template'=>'{view} {update}',
            'viewButtonOptions'=>array('title'=>'查看'),
            'updateButtonOptions'=>array('title'=>'修改'),
        ),
        array(
            'class'=>'CButtonColumn',
            'header'=>'首页展示',
            'template'=>'{add} {del}',
            'buttons'=>array(
                    'add' => array(
                            'label'=>'展示',     // text label of the button
                            'url'=>'Yii::app()->controller->createUrl("focus/create",array("id"=>$data->primaryKey,"type"=>1))',       // a PHP expression for generating the URL of the button
                            'imageUrl'=>'http://s.maylou.com/common/images/ysh.jpg',  // image URL of the button. If not set or false, a text link is used
                            'options'=>array('style'=>'cursor:pointer;'), // HTML options for the button tag
                            'click'=>$click,     // a JS function to be invoked when the button is clicked
                            'visible'=>'SiteRecommend::isItemInTypeAndId(1, $data->id)?false:true',
                    ),
                    'del' => array(
                            'label'=>'取消展示',     // text label of the button
                            'url'=>'Yii::app()->controller->createUrl("focus/delete",array("id"=>$data->primaryKey,"type"=>1))',       // a PHP expression for generating the URL of the button
                            'imageUrl'=>'http://s.maylou.com/common/images/yzhu.jpg',  // image URL of the button. If not set or false, a text link is used
                            'options'=>array('style'=>'cursor:pointer;'), // HTML options for the button tag
                            'click'=>$click,     // a JS function to be invoked when the button is clicked
                            'visible'=>'SiteRecommend::isItemInTypeAndId(1, $data->id)?true:false',
                    )
            ),
        ),
    ),
));

 

 buttons选项提供了创建按钮的方法,上面创建了2个按钮:add和del,并注册到template里面。其中最主要的是click选项,决定了你的触发条件。这里用ajax触发。在上面的代码前面加上$click内容:

 

$csrfTokenName = Yii::app()->request->csrfTokenName;
    $csrfToken = Yii::app()->request->csrfToken;
    $csrf = "\n\t\tdata:{ '$csrfTokenName':'$csrfToken' },";
    $Confirmation= "你确定要这么做?";
    $afterDelete = 'function(link,success,data){ if(success) alert(data); }';
    $click=<<<EOD
    function() {
    if(!confirm("$Confirmation")) return false;;
    var th=this;
    var afterDelete=$afterDelete;
    $.fn.yiiGridView.update('build-oneprice-grid', {
    type:'POST',
    url:$(this).attr('href'),$csrf
    success:function(data) {
    $.fn.yiiGridView.update('build-oneprice-grid');
        afterDelete(th,true,data);
    },
    error:function(XHR) {
        return afterDelete(th,false,XHR);
    }
    });
    return false;
    }
EOD;

 csrf不用管他,是安全验证,必须要有,否则会400报错.$click是js函数的字符窜,用了文档字符窜形式,注意结束的EOD前面必须没空格,也不能缩进。

 

这是Yii内置的yiiGridView Jquery插件,把请求提交到控制器的动作里面处理,然后返回结果并显示。最后还会更新一次gridview.
From:http://www.cnblogs.com/wuyunhua/archive/2011/12/25/2300900.html

 

分享到:
评论

相关推荐

    Yii框架笔记.pdf

    Yii框架笔记.pdf

    yii-1.1.8.r3324

    yii-1.1.8.r3324

    Yii框架文档.pdf

    Yii框架中文文档说明,有具体的操作方法和使用规则

    Ajax-yii2-widgets.zip

    Ajax-yii2-widgets.zip,yii2框架的小部件集合,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况下更改。

    yii框架yii框架yii框架yii框架yii框架

    很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架

    Yii.Application.Development.Cookbook.3rd.Edition

    Learn how to use Yii2 efficiently through clear examples and core features, and see how to use tests, create reusable code snippets, core widgets, deployment, and more This book provides you with a ...

    (完整版)Yii.1.1.Application.Development.Cookbook.Aug.2011

    (完整版)Yii.1.1.Application.Development.Cookbook.Aug.2011

    yii-1.1.5.r2654.zip

    yii-1.1.5.r2654.zip yii-1.1.5.r2654.zip

    yii-1.1.16.bca042.tar

    Yii Framework是一个基于组件、用于开发大型 Web 应用的高性能 PHP 框架。Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。Yii是最有效率的PHP框架之一。yii1.1.16版本为1.0里的最新版本

    yiren-p8Yii-v17323.apk

    yiren-p8Yii-v17323.apk

    Yii中文教程.doc

    Yii中文教程.docYii中文教程.docYii中文教程.docYii中文教程.doc

    yii-1.1.4.r2429.zip_mvc php_php yii_yii 1.1.4.rar_yii mvc_yii1.1

    Yii 框架 php编程框架 MVC 十分简洁方便的开发框架

    yii 框架包

    yii框架包.......................................................................................................................................................................................

    Yii Blog Book.pdf

    Yii Blog Book.pdf 使用yii 建 blog pdf 中文

    《Yii框架深度剖析》配套代码

    《Yii框架深度剖析》配套代码 本书不是简单地介绍如何使用 Yii 框架,而是站在框架设计的高度,从源代码级别深 度剖析。本书首先介绍 PHP 框架技术的概念及其应用领域,然后开始仿照 Yii 框架源代码 自定义框架,...

    Web.Application.Development.with.Yii.and.PHP

    Web.Application.Development.with.Yii.and.PHP

    Ajax-Yii-AjaxDropDown.zip

    Ajax-Yii-AjaxDropDown.zip,带有ajax数据的yii下拉小部件,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...

    Ajax-yii2fullcalendar.zip

    Ajax-yii2fullcalendar.zip,jquery-fullcalendar yii2扩展,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...

    php开发yii框架软件包

    yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架

    Ajax-yii-fullajax.zip

    Ajax-yii-fullajax.zip,富拉杰怡游乐场,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况下更改。

Global site tag (gtag.js) - Google Analytics