重写默认的CGridView 点击“删除”按钮触发的脚本
来源:互联网 发布:java经典程序 源代码 编辑:程序博客网 时间:2024/06/05 10:06
默认的CGridView,点击“删除”按钮所触发的脚本-默认是用javascript 的confirm方法弹出确认对话框,不太美观。且如何更改弹出的对话框中的内容?
下面的脚本是由YII自动生成的。
- $(document).on('click','#staff-grid a.delete', function() {
- if(!confirm("你确定要这么做?")) return false;;
- var th=this;
- var afterDelete=function(link,success,data){ if(success) art_alert(1,data,false);; };
- $.fn.yiiGridView.update('manager-grid', {
- type:'POST',
- url:$(this).attr('href'),//
- success:function(data) {
- $.fn.yiiGridView.update('manager-grid');
- afterDelete(th,true,data);
- },
- error:function(XHR) {
- return afterDelete(th,false,XHR);
- }
- });
- return false;
- });
- array(
- 'class'=>'CButtonColumn',
- 'deleteConfirmation'=>"js:'在这里写上你想要的内容喽,比如确定删除 '+$(this).parent().parent().find('td:eq(1)').html()+'?'",
- 'header'=>'功能操作',
- 'updateButtonImageUrl'=>false,//当你设置 xxxButtonImageUrl 的属性为空或 false 时,文本形式的链接将会代替图片显示.
- 'deleteButtonImageUrl'=>false,
- 'template'=>'{update} {delete}',
- 'headerHtmlOptions'=>array('class'=>'title','width'=>'15%'),
- ),
个人觉得这个弹出的框框不太美观,我一般是用artDialog中的confirm方法。
- art.dialog.confirm('确认删除该新闻吗?',function(){
- //执行的内容
- });
第一想法是重写confirm方法。
- <script>
- function confirm($str)
- {
- art.dialog.confirm('确认删除该新闻吗?',function(){
- //执行的内容
- });
- }
- </script>
- <script>
- function confirm($str)
- {
- alert(1);
- art.dialog.confirm('确认删除该新闻吗?',function(){
- alert(2);
- });
- alert(3);
- }
- </script>
- $(document).on('click','#staff-grid a.delete', function() {
- if(!confirm("你确定要这么做?")) return false;;
- var th=this;
- var afterDelete=function(link,success,data){ if(success) art_alert(1,data,false);; };
- $.fn.yiiGridView.update('manager-grid', {
- type:'POST',
- url:$(this).attr('href'),//
- success:function(data) {
- $.fn.yiiGridView.update('manager-grid');
- afterDelete(th,true,data);
- },
- error:function(XHR) {
- return afterDelete(th,false,XHR);
- }
- });
- return false;
- });
如果在alert(3)处换为return false,那么点击“删除”,一弹出对话框后,程序立即进行删除,无需点“确定”和“删除”。
好了,废话不多说,提供解决方案:
- $afterDelete = 'function(link,success,data){ if(success) art_alert(1,data,false);}';
- $delete=<<<EOD
- function(event) {
- art.dialog.confirm('确认删除该新闻吗?',function(){
- var th=event.target;
- var afterDelete=$afterDelete;
- $.fn.yiiGridView.update('staff-grid', {
- type:'POST',
- url:$(th).attr('href'),//$csrf
- success:function(data) {
- $.fn.yiiGridView.update('staff-grid');
- afterDelete(th,true,data);//只有'ajaxUpdate' => false,设置为true,才通过ajax post提交。否则就是一般性质的post删除。
- },
- error:function(XHR) {
- return afterDelete(th,false,XHR);
- }
- });
- //alert($(th).attr('href'));
- return true;
- });
- return false;
- }
- EOD;
- array(
- 'class'=>'CButtonColumn',
- 'deleteConfirmation'=>"js:'确定删除 '+$(this).parent().parent().find('td:eq(1)').html()+'?'",
- 'header'=>'功能操作',
- 'updateButtonImageUrl'=>false,//当你设置 xxxButtonImageUrl 的属性为空或 false 时,文本形式的链接将会代替图片显示.
- 'deleteButtonImageUrl'=>false,
- 'template'=>'{update} {delete}',
- 'headerHtmlOptions'=>array('class'=>'title','width'=>'15%'),
- //以下代码为重写delete按钮相关内容
- 'buttons'=>array(
- 'delete'=>array(
- 'label'=>'删除',
- 'url'=>'Yii::app()->controller->createUrl("manager/delete",array("id"=>$data->id))',
- 'click'=>$delete,
- ),
- ),
- ),
通过覆盖默认的delete按钮事件,可达到想要效果。具体不解释了,很easy。
进一步优化使用:
- ......
- $afterDelete = 'function(link,result,data){
- if(result===true){
- $.fn.yiiGridView.update("manager-grid");//$(link).parents("ul:first").hide();
- art.dialog.tips(data.msg);//art_alert(1,data.msg,false);
- }
- else
- art.dialog.tips(data.msg);//art_alert(0,data.msg,false);
- }';
- $delete=<<<EOD
- function(event) {
- art.dialog.confirm('确认删除该帐户吗?',function(){
- var th=event.target;
- var afterDelete=$afterDelete;
- $.fn.yiiGridView.update('manager-grid', {
- type:'POST',
- dataType:'json',
- data:{'YII_CSRF_TOKEN':YII_CSRF_TOKEN},
- url:$(th).attr('href'),
- success:function(data) {
- afterDelete(th,data.result,data);
- },
- error:function(XHR) {
- return afterDelete(th,false,XHR);
- }
- });
- });
- return false;
- }
- EOD;
- $this->widget('zii.widgets.grid.CGridView', array(
- 'ajaxUpdate' => true,
- ......
0 0
- 重写默认的CGridView 点击“删除”按钮触发的脚本
- 重写默认的CGridView 点击“删除”按钮触发的脚本
- 重写默认的CGridView 点击“删除”按钮触发的脚本
- yii CGridView的查看、编辑、删除按钮的url修改
- 解决点击回车触发按钮的问题
- 代码控制按钮点击事件的触发
- 点击按钮的几种触发方式
- 自动触发按钮的点击事件
- flex定时触发按钮的点击事件
- Yii: 如何把JS脚本添加到CGridView数据行的操作按钮中
- asp.net 设置页面的默认按钮(敲回车按钮所触发的默认按钮)
- 按 Enter 键的默认触发就是 jb3 按钮
- JS 兼容IE 、 火狐的按钮点击触发
- 通过javascript实现点击一个按钮触发发音的动作
- 关于表单提交按钮多次点击多次触发的解决方法
- android中用代码触发一个按钮的点击事件
- Android 按钮点击两次触发不同的事件
- css去除页面点击链接、按钮触发的虚线框
- TCP/IP实验报告(一):基于TCP的客户/服务器通信程序实例
- 更改Flex tree 滚动条样式
- Python中的文件和目录操作
- 字符串函数
- Gson解析框架
- 重写默认的CGridView 点击“删除”按钮触发的脚本
- JAVA 泛型
- linux 基本操作命令1
- 取转录本fasta最长的当作基因fasta
- 机会网络ONE平台中的ProphetRouter路由详解
- Android之PDF文件的读取——网络资源vudroid异常解决贴
- 用JAVA编写一个简单密码框
- 让光标在文本框的第一个位置出现
- Python 文件与目录操作 .