0

0

EasyUI之dataGrid的行内编辑

巴扎黑

巴扎黑

发布时间:2017-06-23 11:33:47

|

3056人浏览过

|

来源于php中文网

原创

  这个js代码是别人写的,可能不是最好的,但我个人觉得首先能帮助别人解决功能问题的话就特别好。我稍加修改后用在了自己的项目上了,这里贴出来分享一下。后台用的tinkphp因为都是查增删改比较简单,这里就不贴了。前台效果图因为比较懒,也不贴了。

  

$(function () {var datagrid; //定义全局变量datagridvar editRow = undefined; //定义全局变量:当前编辑的行datagrid = TskupluAddPacket.datagrid({
                url: ThinkPHP['MODULE'] + '/Tskuplu/getPacketList', //请求的数据源iconCls: 'icon-save', //图标pagination: true, //显示分页pageSize: 15, //页大小pageList: [15, 30, 45, 60], //页大小下拉选项此项各value是pageSize的倍数fit: true, //datagrid自适应宽度fitColumn: false, //列自适应宽度striped: true, //行背景交换nowap: true, //列内容多时自动折至第二行border: false,
                idField: 'packetid', //主键sortName : 'packetid',                                                                    //排序字段sortOrder : 'desc',                                    //排序方式columns: [[//显示的列{field: 'packetid', title: 'ID', width: 100, sortable: true, checkbox: true },
                        { field: 'packunit', title: '包装单位', width: 100, sortable: true,
                                editor: { type: 'validatebox', options: { required: true} }
                        },
                        { field: 'packqty', title: '包装细数', width: 100,
                                editor: { type: 'validatebox', options: { required: true} }
                        },
                        { field: 'packspec', title: '包装规格', width: 100,
                                editor: { type: 'validatebox', options: { required: true} }
                        }
                ]],
                queryParams: { 
                    pluid: $('#addpluid').val()
                }, //查询参数toolbar: [{ text: '添加', iconCls: 'icon-add', handler: function () {//添加列表的操作按钮添加,修改,删除等//添加时如果没有正在编辑的行,则在datagrid的第一行插入一行if (editRow == undefined) {                                         
                                datagrid.datagrid("insertRow", {
                                        index: 0, // index start with 0                                        row: {}
                                });                   //将新插入的那一行开户编辑状态datagrid.datagrid("beginEdit", 0);//给当前编辑的行赋值editRow = 0;
                        }

                }
                }, '-',
                { text: '删除', iconCls: 'icon-remove', 
                    handler: function () {                         //删除时先获取选择行 var rows = datagrid.datagrid("getSelections");                         //选择要删除的行 if (rows.length > 0) {
                                $.messager.confirm("提示", "你确定要删除吗?", function (r) {if (r) {var ids = [];for (var i = 0; i < rows.length; i++) {
                                            ids.push(rows[i].packetid);
                                        }//将选择到的行存入数组并用,分隔转换成字符串,//本例只是前台操作没有与数据库进行交互所以此处只是弹出要传入后台的id//alert(ids.join(','));                                        $.ajax({
                                            url : ThinkPHP['MODULE'] + '/Tskuplu/deletePacket',
                                            type : 'POST',
                                            data : {
                                                ids : ids.join(',')
                                            },
                                            beforeSend : function (){
                                                $.messager.progress({
                                                    text : '正在处理中...'});    
                                            },
                                            success : function (data){
                                                $.messager.progress('close');if (data >0){
                                                    datagrid.datagrid('reload');
                                                    $.messager.show({
                                                        title : '操作提醒',
                                                        msg   : data + '条数据被成功删除!'})
                                                } else if( data == -999 ) {
                                                    $.messager.alert('删除失败', '对不起,您没有权限!', 'warning');
                                                } else {
                                                    $.messager.alert('删除失败', '没有删除任何数据!', 'warning');
                                                }
                                            }
                                        });                                    
                                    }
                                });
                         } else {
                                $.messager.alert("提示", "请选择要删除的行", "error");
                         } 
                    }
                }, '-',
                { text: '修改', iconCls: 'icon-edit', 
                    handler: function () {//修改时要获取选择到的行var rows = datagrid.datagrid("getSelections");//如果只选择了一行则可以进行修改,否则不操作if (rows.length == 1) {//当无编辑行时if (editRow == undefined) {//获取到当前选择行的下标var index = datagrid.datagrid("getRowIndex", rows[0]);//开启编辑datagrid.datagrid("beginEdit", index);//把当前开启编辑的行赋值给全局变量editRoweditRow = index;//当开启了当前选择行的编辑状态之后,//应该取消当前列表的所有选择行,要不然双击之后无法再选择其他行进行编辑datagrid.datagrid("unselectAll");
                            }
                        }
                    }
                }, '-',
                { text: '保存', iconCls: 'icon-save', 
                    handler: function () {                         //保存时结束当前编辑的行,自动触发onAfterEdit事件如果要与后台交互可将数据通过Ajax提交后台 datagrid.datagrid("endEdit", editRow);  
                         editRow = undefined;
                    }
                }, '-',
                { text: '取消编辑', iconCls: 'icon-redo', 
                    handler: function () {                         //取消当前编辑行把当前编辑行罢undefined回滚改变的数据,取消选择的行 editRow = undefined;
                         datagrid.datagrid("rejectChanges");
                         datagrid.datagrid("unselectAll");
                    }
                }, '-'],
                onAfterEdit: function (rowIndex, rowData, changes) {//endEdit该方法触发此事件                     //var row = datagrid.datagrid("getData").rows[rowIndex];  //获取某一行的值  var inserted = datagrid.datagrid('getChanges','inserted');var updated  = datagrid.datagrid('getChanges','updated');if(inserted.length < 1 && updated.length <1){
                        editRow = undefined;
                        datagrid.datagrid('unselectAll');return;
                    }var url = '';if(inserted.length>0){
                        url=ThinkPHP['MODULE'] + '/Tskuplu/addPacket';
                    }if(updated.length>0){
                        url=ThinkPHP['MODULE'] + '/Tskuplu/updatePacket';
                    }
                          
                    $.ajax({
                       url : url,
                       type : 'POST',
                       data : {                           'pluid': $('#addpluid').val(),                           'packetid':rowData.packetid,                           'packunit':rowData.packunit,                           'packqty' :rowData.packqty,                           'packspec':rowData.packspec
                       },
                       beforeSend : function (){
                           $.messager.progress({
                               text : '正在处理中...'   })
                       },
                       success : function (data){
                           $.messager.progress('close');                           if (data > 0){  
                                datagrid.datagrid("acceptChanges");  
                                $.messager.show({
                                    title : '操作提示',
                                    msg : '添加成功'});            
                                editRow = undefined;
                                datagrid.datagrid("reload");  
                               $('#addcheck').val(1);
                           } else if (data == -999) {
                               $.messager.alert('添加失败', '抱歉!您没有权限!', 'warning');
                           } else {
                               datagrid.datagrid("beginEdit",editRow); 
                               $.messager.alert('警告操作', '未知错误!请重新刷新后提交!', 'warning');
                           }
                           datagrid.datagrid("unselectAll");  
                       }
                    });//////////////////                                                                  },
                onDblClickRow: function (rowIndex, rowData) {//双击开启编辑行if (editRow == undefined) {
                            datagrid.datagrid("beginEdit", rowIndex);
                            editRow = rowIndex;
                    }
                }
        });      
    });

 

善美购物商城Sunway Shop
善美购物商城Sunway Shop

系统特点:技术领先:系统基于被广泛使用的Windows平台开发,集百家之所长,技术领先、功能完备; 快速建店:只需简单设置,3分钟即可以建立一个功能完备的网上商城; 操作简便:软件操作界面由专业设计人员设计,采用人性化的布局,界面规范,操作简捷; 安装方便:只需传到您的虚拟空间即可; HTML编辑器:内置优秀的HTML在线编辑器; 可扩展性:软件构架灵活,考虑未来功能扩充之需要,具有较强的可扩展性

下载

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
EasyUI基础入门视频教程
EasyUI基础入门视频教程

共20课时 | 5.2万人学习

jQuery EasyUI中文参考手册
jQuery EasyUI中文参考手册

共67课时 | 32.7万人学习

最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号