jqgrid实现简单的单行编辑功能


Posted in Javascript onSeptember 30, 2017

本文实例为大家分享了jqgrid实现简单的单行编辑功能的具体代码,供大家参考,具体内容如下

1.html代码

<table id="tableList" style="text-align:center;"></table>
<div id=tablePager></div>

2.script代码

<script type="text/javascript">
   var lastId;//行编辑时用来存放行的id
   $(function(){
    showTable(); //显示jqgrid表格 
    $('.btn-update').click(updateRowData);//编辑按钮
    $('.btn-save').click(saveRowData);//保存按钮添加事件,默认不可用
    $('.btn-cancel').click(cancelRowData);//取消按钮,取消编辑操作
   });

   function showTable(){
    layer.load(2);
    $("#tableList").jqGrid({ 
     url:'myList.action',
     mtype: "POST",
     styleUI : 'AmazeUI',
     datatype: "json",
     height:"auto", 
     autowidth:true,
     rownumbers: true,
     multiselect: true,
     colNames:['id','数量'], 
     colModel:[
        {name:'id',index:'id',hidden:true},  
        /*实现行编辑功能需要添加属性editable:true,edittype:'text',其中'text'与input中的type属性对应,
        比如checkbox,radio,password等*/               
        {name:'num',index:'num',align: "center",editable: true, edittype: 'text'}        
        ], 
       sortable:true,
       sortname:'bc.serialNumber',
       sortorder:'asc',
       rowNum:10, 
     rowList:[10,20,30,90],
     //显示记录数的格式
     recordtext : "记录 {0} - {1} 总记录数 {2}",
     //页数显示格式
     pgtext : "第 {0}页  共 {1} 页",

     viewrecords:true,    
     jsonReader: {
       // 数据行(默认为:rows)
       root:"rows",    
       repeatitems : false,  
       page: "page",   // 当前页
       records:"records", // 总记录数
       total: "total" 
     },
     onSelectRow: function(id){

      },
      onSelectAll:function(id){
      },
      //加载完成(初始加载),回调函数
      loadComplete: function(){ 
       layer.closeAll('loading');
       var page = $('#tableList').getGridParam('page');
       layer.msg('第'+page+'页', {
       time: 1000, //1s后自动关闭
       });
     },
     /*编辑提交时用来对提交的数据进行序列化,如果不添加此属
     性,默认提交的是各个可编辑的字段名值对,后台需要有多个同名
     字段来对应,序列化后,可以只用一个包含各个字段的对象即可接
     收*/
     serializeRowData: function(postdata) {
  return {'entity.id':postdata.id,'entity.num':postdata.num};
       },
     prmNames:      
     {rows:"pageInfo.pageSize",page:"pageInfo.page",
     sort:"pageInfo.sidx",order:"pageInfo.sord",
     search: "pageInfo._search"},
     pager:"#tablePager"
    });
   }

   /*编辑行的函数*/
   function updateRowData()
   {
    //获取选中行的id
    var id=$('#tableList').jqGrid('getGridParam','selrow');
    if(id==null)
     {
      return;
     }
    lastId=id; //存放编辑的id
    //调用此方法,使当前行变为可编辑
    $("#tableList").jqGrid('editRow', id); 

    $('.btn-update').attr("disabled",true);//编辑按钮变为不可用
    //保存和取消按钮变为可用
    $('.btn-save').attr("disabled",false);
    $('.btn-cancel').attr("disabled",false);
   }

   /*保存编辑后的数据函数*/
   function saveRowData()
   {
    $("#tableList").jqGrid(
      'saveRow', 
      lastId,//获取编辑行的id
      { 
       /*成功提交到后台的回调函数*/
       successfunc: function(response) {
         //返回到前台的json字符串

    var data = 
    eval('(' + response.responseText + ')');
         if(data.resultCode==0)
          {
         layer.msg("保存成功!",{icon:1});
         //返回true,对前台数据进行更新
           return true;
          }
         else
         {
         layer.msg("保存失败!",{icon:2});
         //返回false,对前台数据不更新
           return false;
         }
        },
        /*提交的请求地址*/
       url:'recoveryTokenUpdate.action',
       /*系统发生异常时的回调函数*/
       errorfunc:function(){

       layer.msg('系统异常!', {time: 2000});
       },
       /*请求类型post*/
       "mtype" : "POST"
      });
    $('.btn-updateToken').attr('disabled',false);
    $('.btn-saveToken').attr('disabled',true);
    $('.btn-cancelToken').attr('disabled',true);
   }

   /*取消编辑函数*/
   function cancelRowData()
   {
    //取消所编辑的行的操作
    $('#tableList').jqGrid('restoreRow', lastId);
    $('.btn-updateToken').attr('disabled',false);
    $('.btn-saveToken').attr('disabled',true);
    $('.btn-cancelToken').attr('disabled',true);
   }

  </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 使用手册(三)
Sep 23 Javascript
15 个 JavaScript Web UI 库
May 19 Javascript
jQuery的学习步骤
Feb 23 Javascript
js如何调用qq互联api实现第三方登录
Mar 28 Javascript
深入探寻seajs的模块化与加载方式
Apr 14 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
AngularJS国际化详解及示例代码
Aug 18 Javascript
Angular弹出模态框的两种方式
Oct 19 Javascript
用Axios Element实现全局的请求loading的方法
Mar 15 Javascript
一篇文章,教你学会Vue CLI 插件开发
Apr 17 Javascript
JS数组方法join()用法实例分析
Jan 18 Javascript
js实现扫雷源代码
Nov 27 Javascript
微信小程序富文本渲染引擎的详解
Sep 30 #Javascript
js实现数组和对象的深浅拷贝
Sep 30 #Javascript
node通过express搭建自己的服务器
Sep 30 #Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 #Javascript
详解在Vue中有条件地使用CSS类
Sep 30 #Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
Sep 30 #Javascript
vue按需引入element Transfer 穿梭框
Sep 30 #Javascript
You might like
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
Vue实现星级评价效果实例详解
2019/12/30 Javascript
javascript实现计算器功能
2020/03/30 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
python实现图片批量压缩程序
2018/07/23 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
python 8种必备的gui库
2020/08/27 Python
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
美国家居装饰店:Pier 1
2019/09/04 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
大四学生毕业自荐信
2013/11/07 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript