/**
* 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'});
}
jqGrid初始化数据简单封装
最新推荐文章于 2019-03-08 15:06:20 发布