jqGrid封装

$(function(){
	autoFrame();
});

/**
 * 自动调整IFrame的高度
 * @returns
 */
function autoFrame(){
	var mf = top.$("#mainFrame");
	$(mf).load(function () {
	    var mainheight = $(this).contents().find("body").height() + 40;
	    $(this).height(mainheight);
	});
}

/**
 * jqgrid提交之前
 * @param beanDef
 * @returns
 */
function beforeRequest(beanDef){
    var postData = $("#" + beanDef.gridId).jqGrid('getGridParam', 'postData');
    if(!postData){
    	postData = {};
    }
	postData.token = $.cookie("token");
	if (beanDef.filter != undefined
			&& beanDef.filter != null) {
		postData.filter = beanDef.filter;
	}else{
		postData.filter = decodeURIComponent($("#" + beanDef.searchFormId).serialize());
	}
	var map = beanDef.map;
	if (map != undefined && map != null) {
		for ( var key in map) {
			// console.log(key + "=" + map[key]);
			postData[key] = map[key];
		}
	}
	return postData;
}

/**
 * jqgrid加载完成之后
 * @param result
 * @returns
 */
function loadComplete(result, beanDef){
	if (result.state == -101 || result.state == -103) { // 登录超时或者没有token参数
		alert(result.message);
	
			top.location.href = cmsUrl+"login/index.htm";
	}
	if (result.state == -102 || result.state == -103) { // 登录超时或者没有token参数
		alert(result.message);
		
		///top.location.href = cmsUrl+"login/index.htm";
	}
    var table = this;
    setTimeout(function () {
        updatePagerIcons(table);
    }, 0);
    $("#" + beanDef.pagerId + "_left").removeAttr("style") ;
    $(window).triggerHandler('resize.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 createGrid(beanDef) {
    var multiselect = true;
    if (beanDef.multiselect != undefined && beanDef.multiselect != null) {
        multiselect = beanDef.multiselect;
    }
    var ondblClickRow = function(){};
    if (beanDef.ondblClickRow != undefined && beanDef.ondblClickRow != null) {
    	ondblClickRow = beanDef.ondblClickRow;
    }
    var postData = {};
    if (beanDef.postData != undefined && beanDef.postData != null) {
    	postData = beanDef.postData;
    }
    var rowNum = 50;
    if (beanDef.rowNum != undefined && beanDef.rowNum != null) {
    	rowNum = beanDef.rowNum;
    }
    jQuery(function ($) {
        var grid_selector = "#" + beanDef.gridId;
        var pager_selector = "#" + beanDef.pagerId;
        jQuery(grid_selector).jqGrid({
            url: beanDef.searchPostUrl,
            mtype: 'POST',
            datatype: "json",
            postData: postData,
            colNames: beanDef.colNames,
            colModel: beanDef.colModel,
            rowNum: rowNum,
            rowList: [10,50, 100, 200,500],
            pager: jQuery(pager_selector),
            sortname: beanDef.sortName || 'id',
            viewrecords: true,
            sortorder: beanDef.sortOrder || "desc",
            prmNames: {
                rows: "pageSize",
                page: "page",
                sort: "sort",
                order: "order"
            },
            jsonReader: {
                root: 'data.rows',
                cell: '',
                page: "data.page.page",
                total: "data.page.total",
                records: "data.page.records",
                repeatitems: false,
            },
            height:  beanDef.height > 0 ? beanDef.height : $(window).height() - 128 ,
            altRows: false,
            autowidth: true,
            rownumbers: true,
            multiselect:false,
            beforeRequest: function (){
            	postData = beforeRequest(beanDef);
            },
            loadComplete: function (result){
            	loadComplete(result, beanDef);
            },
            loadError: function () {
                var table = this;
                setTimeout(function () {
                    updatePagerIcons(table);
                }, 0);
            },
            ondblClickRow : ondblClickRow,
            caption: beanDef.gridName,
            hidegrid : false, //caption表格名称栏右侧的收起按钮
        }).navGrid(pager_selector, {
            edit: false,
            add: false,
            del: false,
            refresh: false,
            search: false
        }, {}, {}, {}, {
            multipleSearch: true
        });
       /* $(window).triggerHandler('resize.jqGrid');//trigger window resize to make the grid get the correct size
*/
        if (beanDef.overflow == undefined || beanDef.overflow == null) {
        	// 默认水平滚动条隐藏
        	$(grid_selector).closest(".ui-jqgrid-bdiv").css({
        		"overflow-x": "hidden"
        	});
        }
        var conditionHeight = $('.condition').height();
    	
    	var parent_column = $(grid_selector).closest('[class*="col-"]');
    	var miniHeight = $(window).height() - conditionHeight - 105;
    	//resize to fit page size
    	$(window).on('resize.jqGrid', function() {
    		conditionHeight = $('.condition').height();
    	 
    		miniHeight = ($(window).height() - conditionHeight - 105 - 350) > 0 ? ($(window).height() - conditionHeight - 105) : 350;
    		$(grid_selector).jqGrid('setGridWidth', parent_column.width());
    		$(grid_selector).jqGrid('setGridHeight', miniHeight);
    	
    	})
    	
    	//resize on sidebar collapse/expand
    	$(document).on('settings.ace.jqGrid', function(ev, event_name, collapsed) {
    		if(event_name === 'sidebar_collapsed' || event_name === 'main_container_fixed') {
    			//setTimeout is for webkit only to give time for DOM changes and then redraw!!!
    			setTimeout(function() {
    				miniHeight = ($(window).height() - conditionHeight - 105 - 350) > 0 ? ($(window).height() - conditionHeight - 105) : 350;
    				$(grid_selector).jqGrid('setGridWidth', parent_column.width());
    				$(grid_selector).jqGrid('setGridWidth', miniHeight);
    			}, 20);
    		}
    	})
        
    });
}


/**
 * 搜索form提交
 */
function searchForm(gridId) {
	var grid = $("#" + gridId);
	// 返回首页
	grid.setGridParam({
		page : 1
	});
	grid.trigger("reloadGrid");
}

/**
 * 清除表单数据
 */
function clearForm(form) {// objE为form表单
	$(form).find(':input').each(function() {
		switch (this.type) {
		case 'passsword':
		case 'select-multiple':
		case 'select-one':
		case 'text':
		case 'file':
		case 'textarea':
			$(this).val('');
			break;
		case 'checkbox':
		case 'radio':
			this.checked = false;
			break;
		}
	});

	$(form).find('span').each(function() {
		$(this).text('');
	});
}
/**
 * 带弹窗页面清除验证状态
 * @returns
 */
function clearFormValidation(){
	$(".form-group").removeClass("has-error");
	$(".form-group").removeClass("has-success");
	$(".help-block").remove();
}
/**
 * 选择框
 * @param dataMap 数据集合
 * @param selectId 选择框ID
 * @param defaultValue 默认值
 * @param defaultText 默认文本
 * @author niushg
 */
function selectMap(dataMap, selectId, defaultValue, defaultText) {
			$("#" + selectId).html(
					"<option value=''>" + defaultText + "</option>");
			for (var key in dataMap) {
				var select = "";
				if (key == defaultValue) {
					select = " selected";
				}
				$("#" + selectId).append(
						"<option value='" + key + "'" + select + ">"
								+ dataMap[key] + "</option>");
			}


}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值