博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示
阅读量:5771 次
发布时间:2019-06-18

本文共 3382 字,大约阅读时间需要 11 分钟。

hot3.png

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

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'=>'
显示{start}-{end}条.共{count}条记录,当前第{page}页',       '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=<<

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

 

这是Yii内置的yiiGridView Jquery插件,把请求提交到控制器的动作里面处理,然后返回结果并显示。最后还会更新一次gridview.

转载于:https://my.oschina.net/u/148605/blog/290078

你可能感兴趣的文章
JSP 9 个内置对象
查看>>
Python面向对象
查看>>
模板类中类内声明类外定义的函数,在类外定义时没加模板时的报错
查看>>
10分钟学会php面相对象基础(Ⅳ)
查看>>
epoll原理解释(转)
查看>>
一直都是技术,今天来点儿文艺范儿……
查看>>
AutoFac使用方法总结
查看>>
JS回调函数
查看>>
[转]真正了解泰勒公式
查看>>
Spring boot整合shiro权限管理
查看>>
Android连接蓝牙耳机播放音乐
查看>>
961. N-Repeated Element in Size 2N Array
查看>>
Binary Tree Level Order Traversal
查看>>
遍历文件夹及子文件夹_函数
查看>>
时间服务器/时间同步配置
查看>>
asp.net core系列 31 EF管理数据库架构--必备知识 反向工程
查看>>
第二次作业+105032014108
查看>>
C#键值对容器
查看>>
gcc编译生成静态及动态链接库步骤
查看>>
linux系统初始化——启动脚本是如何工作的
查看>>