`

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-1.1.8.r3324

    "yii-1.1.8.r3324" 版本是 Yii 框架的一个特定发行版,它在 1.1.x 系列中的一个稳定版本。这个版本号表示该框架在 1.1 主线版本基础上的第 3324 个修订版本。接下来,我们将深入探讨 Yii 框架以及这个版本的一些关键...

    Yii框架笔记.pdf

    无论是初学者还是经验丰富的开发者,都可以通过学习Yii框架提升自己的开发效率,并构建出高效、稳定的应用系统。无论是在数据库操作、安全控制、性能优化还是用户体验上,Yii都提供了全面的支持,使得开发者能够专注...

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

    在 Yii 框架中,Model 负责处理数据和业务逻辑,View 负责展示数据,而 Controller 处理用户请求并协调 Model 和 View 的交互。这种分离使得代码结构清晰,便于维护和扩展。 PHP 是一种广泛使用的服务器端脚本语言...

    yii-1.1.5.r2654.zip

    Yii框架以其高效、灵活和易用而闻名,其特性包括MVC(模型-视图-控制器)架构模式、ActiveRecord对象关系映射、I18N和L10N(国际化和本地化)、缓存支持、安全机制、表单和验证以及AJAX集成等。Yii 1.1.x是Yii的第一...

    Ajax-yii2-widgets.zip

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

    Yii框架学习笔记.pdf

    2. **事件**:事件是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框架中文文档、yii中文手册教程

    通过这些文档,开发者可以深入理解Yii框架的机制,并学会如何有效地利用它来构建强大的Web应用。同时,Yii社区活跃,有许多优秀的教程和示例代码供学习参考,遇到问题时也能得到及时的帮助。无论是初学者还是经验...

    Yii Blog Book.pdf

    - 包含Yii框架的引导文件`/wwwroot/framework/yii.php`。 - 根据配置文件`/wwwroot/blog/protected/config/main.php`创建应用实例。 - **基础应用目录**:`/wwwroot/blog/protected`,包含主要代码和数据。 - ...

    yii-1.0.4.r920

    4. 自动化测试:Yii 支持单元测试和功能测试,提供 Codeception 测试框架集成,帮助开发者确保代码质量并进行回归测试。 5. 缓存机制:为了提高性能,Yii 提供了多种缓存策略,包括文件缓存、内存缓存(如 APC、...

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

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

    php-yii-api.zip

    通过阅读这些帮助文件,开发者可以深入理解Yii框架的内部工作原理,学习如何创建和配置控制器、模型、视图,以及如何利用Yii的其他功能,如路由、事件、行为等,从而高效地开发和维护PHP Web应用。

    php最新框架YII框架

    Yii框架是PHP开发中的一个高性能、基于组件的MVC(Model-View-Controller)框架,以其高效、灵活和丰富的特性而备受开发者喜爱。...无论是在新项目还是维护旧项目中,熟悉并掌握Yii框架都将对提升开发效率大有裨益。

    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.1.1.Application.Development.Cookbook.Aug.2011

    ### Yii 1.1 应用程序开发食谱知识点概览 #### 一、书籍基本信息与版权信息 - **书名**:Yii 1.1 应用程序开发食谱 (August 2011 版本) - **作者**:Alexander Makarov - **出版社**:Packt Publishing - **出版...

    yii 框架包

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

    YII框架中文手册

    **Yii框架中文手册** Yii(读作"易")是一个高性能、基于组件的PHP框架,专为开发...在实际开发中,不断查阅并理解Yii中文手册,结合实例操作,将理论知识转化为实践经验,将有助于提升开发者在Yii框架下的编程技能。

    yii示例-下拉框-最新的yii框架

    Yii2提供`yii\web\JsExpression`和`yii\widgets\ActiveForm::ajax()`方法来配置AJAX请求。 8. **表单验证** Yii2内置了强大的验证规则,可以在模型中定义,确保用户输入的数据符合预期格式。例如,如果下拉框必须...

Global site tag (gtag.js) - Google Analytics