jqGrid初始化数据简单封装

/**
 * options:创建表格所需要配的参数:<br>
 * { <br>
 *   sid: service ID             (必配)<br>
 * 	 pagerId: 分页栏ID            (必配,不显示分页栏可配为空字符串)<br>
 * 	 colNames: 表格列的列名      (必配)<br>
 * 	 colModels:表格列的属性      (必配)<br>
 *   datatype : 服务器端返回的数据类型,默认为local(不加载),json(初始化就加载数据)(选配)<br>
 *   height : 手动设置表格高度,默认为auto (选配)<br>
 *   rowNum : 设置初始化显示表格记录数,默认显示10条数据,默认显示所有数据配为-1(选配)<br>
 * 	 searchParam:搜集查询条件    (选配)<br>
 * 	 formId : 条件查询formId		 (选配)<br>
 *   shrinkToFit: 是否按比例初始化表格宽度(选配,默认按比例初始化,不按比例(即显示横向滚动条)配为true)<br>
 *   rownumbers:是否显示行号         (选配,默认不显示,显示配为true)<br>
 *   viewrecords:是否显示总记录数     (选配,默认显示,不显示配为true)<br>
 *   rowList:是否显示可选记录数       (选配,默认为[10,20,50],不显示配为{},修改可配为 例:[5,10,20])<br>
 *   multiselect:是否支持多选        (选配,默认支持,不支持配为true)<br>
 *   pgbuttons:是否显示翻页按钮		 (选配,默认显示,不显示配为true)<br>
 *   pginput:是否显示跳转页面的输入框	 (选配,默认显示,不显示配为true)<br>
 *   caption:是否显示表格标题	 	 (选配,默认不显示,显示直接配表格标题字符串)<br>
 * } <br>
 * callback:beforeRequest()回调函数
 * callback1:loadComplete()回调函数
 */
var isSearch = false;
var successMsg;
$.fn.initTable = function (options,callback,callback1) {
	var sid = options.sid;
	var pagerId = options.pagerId;
	var colNames = options.colNames;
	var colModels = options.colModels;
	var searchParam = options.searchParam;
	var formId = options.formId;
	
    var me = this;
    var pageIndex = 1;
    var pageSize = 10;
    var fullurl = extUtil.getProjectName() + staticParam.action_reqPath_main + "?" + utils.createUUID();
    var sJsonData = extUtil.json2Str(utils.createPageGrid(searchParam, pageIndex, pageSize));
    var sdata = {
    	_sid: sid,
        json: sJsonData,
        uid: sessionStorage.getItem("uid")
    };
    var tableId = $(me).attr("id");
    var pager = "#" + pagerId;
    me.jqGrid({
        url: fullurl,
        mtype : "POST",
        postData : sdata,
        datatype: options.datatype ? options.datatype : "local",
        height: options.height ? options.height : 'auto',
        colNames: colNames,
        colModel: colModels,
        jsonReader : {
        	total: "totalPages",  
        	records: "total"
        },
        altRows : true,
        rowNum: options.rowNum ? options.rowNum : pageSize,
        pager: pager,                                    //显示分页栏
        shrinkToFit : options.shrinkToFit ? false : true,//是否按比例初始化列宽度
        rownumbers: options.rownumbers ? true : false,   //显示行号
        viewrecords : options.viewrecords ? false : true,//是否显示总记录数
        rowList : options.rowList ? options.rowList : [10,20,50],//是否显示可选记录数
        multiselect: options.multiselect ? false : true, //是否支持多选
        pgbuttons: options.pgbuttons ? false : true,     //是否显示翻页按钮
        pginput: options.pginput ? false : true,         //是否显示翻页按钮
        caption: options.caption ? options.caption : "", //是否显示表格标题
        onPaging : function(pgButton){
      	  if(pgButton == "first_"+pagerId){
      		  pageIndex = 1;
      	  }
      	  if(pgButton == "last_"+pagerId){
      		  pageIndex = $("#sp_1_"+pagerId).text();
      	  }
      	  if(pgButton == "prev_"+pagerId){
      		  pageIndex--;
      	  }
      	  if(pgButton == "next_"+pagerId){
      		  pageIndex++;
      	  }
      	  if(pgButton == "user"){
        	  pageIndex = $("#sp_1_"+pagerId).prev().val();
          }  
          if(pgButton == "records"){
        	  pageSize = $("#last_"+pagerId).next().find($(".ui-pg-selbox")).val();
        	  pageIndex = 1;
          }
          fSearch(pageIndex,pageSize,sid,tableId,formId);
        },
        beforeRequest : function() {  //向服务器端发起请求之前设置分页按钮样式
            var table = this;
            setTimeout(function(){
                updatePagerIcons(table);
                enableTooltips(table);
            }, 0);
            if(callback) callback();
        },
        loadComplete : function(o){
			if(o.success == false){
				if(o.msg)toastr.warning(o.msg);
			}
			if(isSearch){
				isSearch = false;
				if(!o.total || o.total==0){
					toastr.info("没有查询到数据!");
				}else{
					toastr.success(successMsg);
				}
			}
			if(callback1) callback1();
		}
    });
    $(window).triggerHandler('resize.jqGrid');
};
//查询方法
function fSearch(pageIndex,pageSize,sid,tableId,formId,msg){
	isSearch = true;
	successMsg = msg?msg:"查询成功!";
    if(pageIndex == null || pageSize == null){
	   pageIndex = 1;
	   pageSize = $("#"+tableId).getGridParam('rowNum');
    }
    var searchParam = getSearchCondition(formId);
    var sJsonData = extUtil.json2Str(utils.createPageGrid(searchParam, pageIndex, pageSize));
    var sdata = {
    	_sid: sid,
        json: sJsonData,
        uid: sessionStorage.getItem("uid")
    };
    $("#"+tableId).jqGrid("setGridParam", {
		   datatype : 'json',
		   postData : sdata,
		   page : pageIndex,
	   }).trigger("reloadGrid");
}
//获取查询条件
function getSearchCondition(formId){
    var searchCondition = extUtil.serializeObject($('#'+formId));
    // 循环searchCondition,若内key值为“”则置为null
    for (var i in searchCondition) {
        if (searchCondition[i] == "") {
            searchCondition[i] = null;
        }
    }
    return searchCondition;
}

//设置jqgrid的分页按钮样式
function updatePagerIcons(table) {
       var replacement =
       {
         'ui-icon-seek-first' : 'ace-icon fa fa-angle-double-left bigger-140',
         'ui-icon-seek-prev' : 'ace-icon fa fa-angle-left bigger-140',
         'ui-icon-seek-next' : 'ace-icon fa fa-angle-right bigger-140',
         'ui-icon-seek-end' : 'ace-icon fa fa-angle-double-right bigger-140'
       };
       $('.ui-pg-table:not(.navtable) > tbody > tr > .ui-pg-button > .ui-icon').each(function(){
          var icon = $(this);
          var $class = $.trim(icon.attr('class').replace('ui-icon', ''));

          if($class in replacement) icon.attr('class', 'ui-icon '+replacement[$class]);
      });
}
function enableTooltips(table) {
     $('.navtable .ui-pg-button').tooltip({container:'body'});
     $(table).find('.ui-pg-div').tooltip({container:'body'});
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值