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

发布时间 - 2026-01-11 03:29:56    点击率:

本文实例为大家分享了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>

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


# jqgrid  # 单行编辑  # JQGrid的用法解析(列编辑  # 添加行  # 删除行)  # 回调  # 时用  # 不可用  # 的是  # 加载  # 序列化  # 多个  # 大家分享  # 具体内容  # 大家多多  # 自动关闭  # 默认为  # 字段名  # 当前页  # load  # url  # action  # mtype  # POST  # myList 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 在线制作视频的网站有哪些,电脑如何制作视频短片?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  如何在七牛云存储上搭建网站并设置自定义域名?  北京企业网站设计制作公司,北京铁路集团官方网站?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  如何在橙子建站上传落地页?操作指南详解  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Python文本处理实践_日志清洗解析【指导】  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  jQuery中的100个技巧汇总  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Python文件流缓冲机制_IO性能解析【教程】  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  个人网站制作流程图片大全,个人网站如何注销?  如何用西部建站助手快速创建专业网站?  利用JavaScript实现拖拽改变元素大小  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  香港服务器建站指南:免备案优势与SEO优化技巧全解析  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  Java解压缩zip - 解压缩多个文件或文件夹实例  深圳网站制作培训,深圳哪些招聘网站比较好?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  装修招标网站设计制作流程,装修招标流程?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  如何获取上海专业网站定制建站电话?  如何在IIS中新建站点并配置端口与物理路径?  如何选择可靠的免备案建站服务器?  如何快速生成橙子建站落地页链接?  Laravel怎么实现验证码(Captcha)功能  android nfc常用标签读取总结  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  制作公司内部网站有哪些,内网如何建网站?  英语简历制作免费网站推荐,如何将简历翻译成英文?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Python面向对象测试方法_mock解析【教程】  如何在建站之星绑定自定义域名?  如何用免费手机建站系统零基础打造专业网站?