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

神马是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编辑行删除行功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • EasyUI学习之DataGird分页显示数据

    本文实例为大家分享了EasyUI DataGird的使用方法,供大家参考,具体内容如下 1. html代码 <table id="grid" style="width: 940px" title="用户操作" data-options="iconCls:'icon-view'"> </table> 2.显示 3.js代码 // 页面加载后显示表数据 $(function() { var queryDat

  • jQuery EasyUI中DataGird动态生成列的方法

    EasyUI中使用DataGird显示数据列表中,有时需要根据需要显示不同的列,例如,在权限管理中,不同的用户登录后只能查看自己权限范围内的列表字段,这就需要DataGird动态组合列,下面介绍EasyUI中DataGird动态生成列的方法. DataGird动态生成列,实际上就是控制DataGird的 columns 属性值,下面通过ajax异步调用后台columns的数据,进行绑定. <table id="dg"></table> <script>

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

    神马是easyui jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签. jQuery EasyUI为我们提供了大多数UI控件的使用,如:accordion,combobox,menu,dialog,tabs,tree,validatebox,window等等. 下面通

  • jQuery Easyui Treegrid实现显示checkbox功能

    下面通过本文给大家介绍下图中的treegrid如何实现? 要求:动态加载:级联勾选:通关类型判断显示包库/还是镜像(列有所不同,镜像共4列),勾选一个复选框,后面的复选框变为不可勾选状态. 下面是具体代码: 1,初始化treegrid,(其中有几个type列,是由后台人员提供的字段名,虽然我也不想弄一堆type...汗) var root = 20543; //初始化产品树 function InitProductTreeGrid(rootid) { var type = '<%=Control

  • 自己动手制作jquery插件之自动添加删除行功能介绍

    这是一个我认为功能基本完善的插件,它包括添加.删除.插入.上下移动.索引标识. 数量控制等功能,基本上能满足大部分多行添加的需求,当然,在完成这些功能的前提下,我也尽量保持较少的代码量和易理解的逻辑性. 这个插件的演示页面是http://www.lovewebgames.com/demo/autoAdd/autoAdd.html ,引用自己动手制作jquery插件之自动添加删除行(上)里的介绍,这是一个简单的插件,它的作用是:一个系统中有大量的需要对一个行进行复制添加,希望能够进行批量的操作时,

  • jquery实现邮箱自动填充提示功能

    邮箱的广泛使用得益于它的免费,因此很多网站在注册的时候都会直接使用邮箱作为账号名 为了提高用户的体验,很多网站都会实现邮箱输入的自动提示功能,所有自己也实现了一个,先看下效果吧,觉得效果还行的就拿去 核心代码(需要jquery的支持): (function($){ $.fn.mailAutoComplete = function(options){ var defaults = { boxClass: "mailListBox", //外部box样式 listClass: "

  • jQuery实现分隔条左右拖动功能

    本文实例讲述了jQuery实现分隔条左右拖动功能的实现代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体内容如下 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </titl

  • Jquery Easyui自定义下拉框组件使用详解(21)

    本文实例为大家分享了Jquery Easyui自定义下拉框组件的实现代码,供大家参考,具体内容如下 加载方式 JS调用加载 自定义下拉框不能通过标签的方式进行创建. <input id="box" /> <script> $(function () { //JS 加载调用 $('#box').combo({ required : true, multiple : true, }); }); </script> 属性列表 <script>

  • jQuery实现文章收起与展开功能

    本文实例为大家分享了jQuery实现文章收起与展开功能的具体代码,供大家参考,具体内容如下 废话不多说,直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文章</title> </head> <body> <div> <p>文章收起与展开功能<

  • Jquery easyui开启行编辑模式增删改操作

    jQuery EasyUI 框架提供了创建网页所需的一切,帮助您轻松建立站点. easyui 是一个基于 jQuery 的框架,集成了各种用户界面插件. easyui 提供建立现代化的具有交互性的 javascript 应用的必要的功能. 使用 easyui,您不需要写太多 javascript 代码,一般情况下您只需要使用一些 html 标记来定义用户界面. HTML 网页的完整框架. easyui 节省了开发产品的时间和规模. easyui 非常简单,但是功能非常强大. 先给大家展示效果图:

  • 利用JQuery实现datatables插件的增加和删除行功能

    在学习过程中遇到了这个利用JQuery对表格行的增加和删除,特记录下来以供初学者参考. 下面是主要的代码: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>zengjia he shancu </title> <meta charset="utf-8" /> <script src=&quo

  • jQuery EasyUI编辑DataGrid用combobox实现多级联动

    我在项目中设计课程表的时候需要用到老师和分类之间的多级联动. 首先是一张效果图: 下面是实现的代码: <body> <script type="text/javascript"> $(function(){ var editing ; //判断用户是否处于编辑状态 var flag ; //判断新增和修改方法 $('#set_schedule').datagrid({ idField:'id' , fitColumns: false , url:'schedul

随机推荐