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 追加元素的方法如append、prepend、before
Jan 16 Javascript
jQuery固定浮动侧边栏实现思路及代码
Sep 28 Javascript
关于JS变量和作用域详解
Jul 28 Javascript
JavaScript拖动层Div代码
Mar 01 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
webpack打包单页面如何引用的js
Jun 07 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
Aug 10 Javascript
JS实现处理时间,年月日,星期的公共方法示例
May 31 Javascript
node.js实现简单的压缩/解压缩功能示例
Nov 05 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
angular中的post请求处理示例详解
Jun 30 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
php cache类代码(php数据缓存类)
2010/04/15 PHP
PHP编程风格规范分享
2014/01/15 PHP
php 生成短网址原理及代码
2014/01/23 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
JavaScript实现表格排序方法
2013/06/14 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
学校学习雷锋活动总结
2014/07/03 职场文书
保密工作整改报告
2014/11/06 职场文书
公司员工安全协议书
2014/11/21 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL