jquery jqGrid翻页记录原来数据并勾选已选择的数据

实现该功能主要依赖于API提供的三个方法。loadComplete,onSelectAll,onSelectRow

方法名参数   功能


loadComplete         

xhr  当从服务器返回响应时执行,xhrXMLHttpRequest 
onSelectAll


aRowid s,statu s            

  multiselectture,且点击头部的checkbox时才会触发此事件。aRowids:所有选中行的id集合,为一个数组。statu sboolean变量说明checkbox的选择状态,true选中false不选中。无论checkbox是否选择,aRowids始终有 
onSelectRow 


rowid,status    

  当选择行时触发此事件。rowid:当前行idstatus:选择状,当multiselect true时此参数才可


//新建一个数组,存放已勾选的id
var arrayNewList = new Array();

$("#proList").jqGrid({
   url:"<%= basePath %>/mPromo/selectProList.do",
   queryFormId:"queryForm",
   colNames:["产品编码","产品名称","分类编码","分类名称","二级产品线编码","二级产品线名称","id"],
    colModel:[
           {name:"code",index:"code",align:'center',width:80},
           {name:"name",index:"name",align:'left',width:100},
           {name:"categoryCode", index:"categoryCode",align:'left',width:80},
           {name:"categoryName", index:"categoryName",align:'left',width:100},
           {name:"productLineTwoCode",index:"productLineTwoCode",align:"left",width:80},
           {name:"productLineTwoName",index:"productLineTwoName",align:"left",width:100},
           {name:'id',index:'id',width:1,hidden:true/*,key:true*/}
          ],
    pager:"#gridPager",
     height: '350',
   beforeRequest:function(){
      if(gridParam.page!=""&&gridParam.page!=undefined&&gridParam.flag){
         gridParam.flag=false;
         $("#proList").setGridParam(gridParam);
      }
   },
  jsonReader: {id: "code"},
   multiselect: true,
  //为表格增加复选框
   gridComplete:function(){
      tb_init("a.thickbox, area.thickbox, input.thickbox");
      var rowIds = jQuery("#proList").jqGrid('getDataIDs');
      for(var k=0; k<rowIds.length; k++) {
         var curRowData = jQuery("#proList").jqGrid('getRowData', rowIds[k]);
         var curChk = $("#"+rowIds[k]+"").find(":checkbox");
         curChk.attr('name', 'checkboxname');   //给每一个checkbox赋名字
         curChk.attr('value', curRowData['code']);   //给checkbox赋值

      }
   },
   loadComplete:function(xhr){
        var array = xhr.list;
        if (arrayNewList.length > 0) {
            $.each(array, function (i, item) {
                if (arrayNewList.indexOf(item.code) > -1) {
                    //判断arrayNewList中存在item.code值时,选中前面的复选框,
                    $("#jqg_proList_" + item.code).attr("checked", true);
                }
            });
        }

   },
   onSelectAll:function(aRowids,status){
       if(status==true){
           //循环aRowids数组,将code放入arrayNewList数组中
           $.each(aRowids,function(i,item){
              saveData(item);
           })
       }else{
           //循环aRowids数组,将code从arrayNewList中删除
           $.each(aRowids,function(i,item){
              deleteIndexData(item);
           })
       }

   },
   onSelectRow:function(aRowids,status){
       if(status==true){
          saveData(aRowids);
       }else{
          deleteIndexData(aRowids);
       }

   }

});

function saveData(obj){
    arrayNewList.push(obj);
}
function deleteIndexData(obj){
    //获取obj在arrayNewList数组中的索引值
    for(i = 0; i < arrayNewList.length; i++){
        if (arrayNewList[i] == obj){
            //根据索引值删除arrayNewList中的数据
            arrayNewList.remove(i);
            i--;
        }
     }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值