当前位置: 移动技术网 > IT编程>开发语言>JavaScript > jqgrid实现简单的单行编辑功能

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

画册设计欣赏,中科云华,永无止境第一季

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

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网