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 相关文章推荐
javascript中substr,substring,slice.splice的区别说明
Nov 25 Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 Javascript
js图片自动轮播代码分享(js图片轮播)
May 06 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
jquery使用each方法遍历json格式数据实例
May 18 Javascript
详解JS正则replace的使用方法
Mar 06 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
Oct 21 Javascript
Vue侧滑菜单组件——DrawerLayout
Dec 18 Javascript
Javascript 之封装(Package)
Sep 14 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
Sep 28 Javascript
vue模仿网易云音乐的单页面应用
Apr 24 Javascript
微信小程序搭建自己的Https服务器
May 02 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变量修饰符static的使用
2013/06/28 PHP
php绘制一条弧线的方法
2015/01/24 PHP
php代码架构的八点注意事项
2016/01/25 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
化工专业个人的求职信范文
2013/11/28 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
农村党支部承诺书
2015/04/30 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
golang语言指针操作
2022/04/14 Golang