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 相关文章推荐
用js查找法实现当前栏目的高亮显示的代码
Nov 24 Javascript
JavaScript 使用技巧精萃(.net html
Apr 25 Javascript
基于jquery的跨域调用文件
Nov 19 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
Dec 26 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
Jan 20 Javascript
高效率JavaScript编写技巧整理
Aug 23 Javascript
IE、FF浏览器下修改标签透明度
Jan 28 Javascript
JavaScript更改原始对象valueOf的方法
Mar 19 Javascript
js获取元素的外链样式的简单实现方法
Jun 06 Javascript
Javascript 跨域知识详细介绍
Oct 30 Javascript
jquery中绑定事件的异同
Feb 28 Javascript
微信小程序实现星级评分和展示
Jul 05 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
如何去掉文章里的 html 语法
2006/10/09 PHP
在项目中寻找代码的坏命名
2012/07/14 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
探究Python中isalnum()方法的使用
2015/05/18 Python
python Django批量导入不重复数据
2016/03/25 Python
Random 在 Python 中的使用方法
2018/08/09 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
python hough变换检测直线的实现方法
2019/07/12 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
办公设备采购方案
2014/03/16 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
校园广播稿精选
2014/10/01 职场文书
颐和园导游词
2015/01/30 职场文书
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers