jQuery easyui datagird编辑行删除行功能的实现代码


Posted in jQuery onSeptember 20, 2018

神马是easyui

jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。

jQuery EasyUI为我们提供了大多数UI控件的使用,如:accordion,combobox,menu,dialog,tabs,tree,validatebox,window等等。

下面通过代码看下easyui datagird编辑行删除行功能,具体代码如下所示:

function init(){
   var editRow = undefined;
   var oldMoney = undefined;
   $("#dg").datagrid({
     url:"../foreignexchange/fexLedgerManager.do?method=queryApplyData&parentId="+parentId,
     fitColumns:false,//自适应宽度,占满,不能和冻结列同时设置成true
     striped:true,  //斑马线效果
    singleSelect:false,     //是否单选
    pagination:false,
     height:140,
     columns:[[
            {field:"id", title:"主键", width:'10', align:"center",hidden:true},
           {field:"applyNo", title:"申报单号", width:'250', align:"center",editor: { type: 'validatebox', options: { required: true } }},
           {field:"exeMoneyString", title:"执行金额", width:'200', align:"center",editor: { type: 'moneybox', options: {precision:2, required: true } }},
           {field:"exchangeRate", title:"执行汇率(%)", width:'210', align:"center",editor: { type: 'numberbox', options: {precision:5, required: true } }},
           {field:"submitDate", title:"提交日期", width:'190', align:"center",editor: { type: 'datebox', options: { required: true } }},
           {field:"executeDate", title:"执行日期", width:'190', align:"center",editor: { type: 'datebox', options: { required: true } }}
           ]],
           toolbar: [{
             text: '添加', iconCls: 'icon-add', handler: function () {
               if (editRow != undefined) {
                 $("#dg").datagrid('endEdit', editRow);
               }
               if (editRow == undefined) {
                 var submitDate = $("#submitDate").val();
                 $("#dg").datagrid('insertRow', {
                   index: 0,
                   row: {submitDate:submitDate}
                 });
                 $("#dg").datagrid('beginEdit', 0);
                 editRow = 0;
               }
             }
           }, /*'-', {
             text: '撤销', iconCls: 'icon-redo', handler: function () {
             editRow = undefined;
             $("#dg").datagrid('rejectChanges');
             $("#dg").datagrid('unselectAll');
           }
           },*/ '-', {
             text: '删除', iconCls: 'icon-remove', handler: function () {
               var row = $("#dg").datagrid('getSelected');
               if(row){
                 var index = $("#dg").datagrid("getRowIndex",row);
                 $("#dg").datagrid('deleteRow',index);
               }else{
                 $("#dg").datagrid('endEdit', 0);
                 $("#dg").datagrid('deleteRow',0);
                   editRow = undefined;
               }
             }
           }, '-', {
             text: '修改', iconCls: 'icon-edit', handler: function () {
               var row = $("#dg").datagrid('getSelected');
               oldMoney = row.exeMoneyString;
               if (row !=null) {
                 if (editRow != undefined) {
                   $("#dg").datagrid('endEdit', editRow);
                 }
                 if (editRow == undefined) {
                   var index = $("#dg").datagrid('getRowIndex', row);
                   $("#dg").datagrid('beginEdit', index);
                   editRow = index;
                   $("#dg").datagrid('unselectAll');
                 }
               } else {
               }
             }
           }, '-', {
                 text: '保存', iconCls: 'icon-save', handler: function () {
                   var opeRow = editRow;
                   $("#dg").datagrid('endEdit', editRow);
                   var rows = $("#dg").datagrid('getChanges');
                   if(!rows ||rows.length==0){
                     alert("无修改数据,无需保存!");
                     return false;
                   }
                   var allRows = $("#dg").datagrid('getData');
                   var executeMoney = $("#executeMoney").val();
                   var sum = 0;
                   var money = 0;
                   $.each(allRows.rows,function(i,row){
                     row.parentId = parentId;
                     money = formatMeony(row.exeMoneyString);
                     sum+=money;
                   });
                   if(sum>executeMoney){
                     alert("执行金额超出台账登记执行金额!");
                     if(oldMoney){
                       $("#dg").datagrid('updateRow', {
                         index: opeRow,
                         row: {exeMoneyString:oldMoney}
                       });
                     }
                     $("#dg").datagrid('beginEdit', opeRow);
                     $("#dg").datagrid('unselectAll');
                     return false;
                   }
                   //新增
                  var addRows = $("#dg").datagrid('getChanges','inserted');
                   //修改
                  var updateRows = $("#dg").datagrid('getChanges','updated');
                   //删除
                  var delRows = $("#dg").datagrid('getChanges','deleted');
                   var addOrUpdate = $.merge(addRows,updateRows);
                   var addOrUpdateStr = JSON.stringify(addOrUpdate);
                   var delRowsStr = JSON.stringify(delRows);
                  $.ajax({
                     type:'post',    
                      url:'../foreignexchange/fexLedgerManager.do',  
                      data : {
                        "method" : $("#method").val(),
                        "addOrUpdateStr" : addOrUpdateStr,
                        "delRowsStr" : delRowsStr
                      }, 
                      cache:false,  
                      dataType:'json',  
                      success:function(data){
                        if(data.success){
                          alert(data.msg);
                          init();
                        }else{
                          alert(data.msg);
                        }
                      }
                  });
                 }
               }],
           onAfterEdit: function (rowIndex, rowData, changes) {
             editRow = undefined;
           },
           onDblClickRow:function (rowIndex, rowData) {
             if (editRow != undefined) {
               $("#dg").datagrid('endEdit', editRow);
             }
             if (editRow == undefined) {
               $("#dg").datagrid('beginEdit', rowIndex);
               editRow = rowIndex;
               var row = $("#dg").datagrid('getSelected');
               oldMoney = row.exeMoneyString;
             }
           },
           onClickRow:function(rowIndex,rowData){
             if (editRow != undefined) {
               $("#dg").datagrid('endEdit', editRow);
             }
           }
   });
 }
function formatMeony(value){
   var money =value;
   var temp = money.split(",");
   var result = "";
   var value = 0;
   var size = temp.length;
   for (var j = 0; j < size; j++) {
     result = result + temp[j];
   }
   value = parseFloat(result);
   return value;
}

总结

以上所述是小编给大家介绍的jQuery easyui datagird编辑行删除行功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery查找dom的几种方法效率详解
May 17 jQuery
JQuery EasyUI的一些常用组件
Jul 12 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
一文快速了解JQuery中的AJAX
May 31 jQuery
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
jQuery 移除事件的方法
Jun 20 jQuery
jQuery实现电梯导航模块
Dec 22 jQuery
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 #jQuery
jQuery使用each遍历循环的方法
Sep 19 #jQuery
jquery 动态遍历select 赋值的实例
Sep 12 #jQuery
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 #jQuery
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 #jQuery
jQuery中each遍历的三种方法实例分析
Sep 07 #jQuery
jQuery超简单遮罩层实现方法示例
Sep 06 #jQuery
You might like
Django 中 cookie的使用
2017/08/17 PHP
jquery JSON的解析方式
2009/07/25 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
Python Tkinter GUI编程入门介绍
2015/03/10 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
Python3生成手写体数字方法
2018/01/30 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python求质数的3种方法
2018/09/28 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
python生成器与迭代器详解
2019/01/01 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
python全局变量引用与修改过程解析
2020/01/07 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
C语言编程练习
2012/04/02 面试题
应届毕业生个人自荐信范文
2013/11/30 职场文书
开工庆典邀请函范文
2014/01/16 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
《月迹》教学反思
2014/02/19 职场文书
承诺保证书格式
2015/02/28 职场文书
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS