//数据初始定义
$.jgrid.defaults.width = 780;
$.jgrid.defaults.styleUI = 'Bootstrap';
var loseherght = 0;
var dataCol = [];//数据列 标准jqgrid colModel 额外附加属性 sumtype: "sum", sumtxt:"类型:{0}"
var searchCol = [];//查询列
//参数配置 multiselect 是否出现多选 selectcol 多选获取的值 默认id,
//获取方式:GetGridSelect() 值结果 1,2,3 注意不管是否中文 都无引号 例如 :春,夏,秋,东
var gridConfig = { multiselect: false, selectcol: "id" };
var shrinkToFit = true;
var footerrow = true;
//txt date datetime datearea chechbox ,combox 参考
//searchCol = [
// { label: '商品编号', name: 'Productcode', labtype: 'txt', ismust: true },
// { label: '商品名称', name: 'Productname', labtype: 'txt' },
// { label: '创建日期', name: 'Adddate', labtype: 'date' },
// { label: '类型选择', name: 'Selecttype', labtype: 'combox', data: [{ code: 5, label: '春天' }, { code: 6, label: '夏天' }, { code: 7, label: '秋天' }] },
// { label: '会计周期', name: 'Firadate', labtype: 'datearea' },
// { label: '是否打折', name: 'Ispdata', labtype: 'chechbox' }
//];
//formatter: function (cellvalue, options, rowObject) {
// if (cellvalue == '0') return "
";
// if (cellvalue == '1') return "
";
//},
var dataUrl = "";//地址
var lastSearch = [];
$(function () {
//layer.config({
// extend: ['/js/plugins/layer/skin/espresso/style.css'], //加载新皮肤
// skin: 'layer-ext-espresso' //一旦设定,所有弹层风格都采用此主题。
//});
$(window).resize(function () {
doResize();
});
});
function doResize() {
//var w = $(document.body).width();
var h = document.body.offsetHeight;
//console.log("宽度:" + w + " 高度:" + h + "|" + $("#topzone").width());
$("#jqGrid").jqGrid('setGridWidth', $("#topzone").width() - 0);
$("#jqGrid").jqGrid('setGridHeight', h - 180 - loseherght);
}
function _pageSearch() {
var jsons = GetSearchEnd();
if (jsons == false) {
msg.info("请录入查询条件");
return false;
}
LoadGrid(jsons);
}
function getFrame() {
// 获取当前iframe的 src
var url = location.href;
var _url = url.split("/");
//获取父页面的所有iframe
var eles = top.document.getElementsByTagName("iframe");
//循环所有iframe
for (var i = 0 ; i < eles.length; i++) {
var ele = eles[i];
var iframeUrl = ele.src;
var _iframeUrl = iframeUrl.split("/");
//获取当前页面的iframe
if (_url[_url.length - 1] == _iframeUrl[_iframeUrl.length - 1]) {
return ele;
}
var celes = eles[i].contentWindow.document.getElementsByTagName("iframe");
if (celes.length > 0) {
for (var j = 0; j < celes.length; j++) {
var cele = celes[j];
var ciframeUrl = cele.src;
var _ciframeUrl = ciframeUrl.split("/");
//获取当前页面的iframe
if (_url[_url.length - 1] == _ciframeUrl[_ciframeUrl.length - 1]) {
return cele;
}
}
}
}
}
//深度克隆
function deepClone(obj) {
var result, oClass = isClass(obj);
//确定result的类型
if (oClass === "Object") {
result = {};
} else if (oClass === "Array") {
result = [];
} else {
return obj;
}
for (key in obj) {
var copy = obj[key];
if (isClass(copy) == "Object") {
result[key] = arguments.callee(copy);//递归调用
} else if (isClass(copy) == "Array") {
result[key] = arguments.callee(copy);
} else {
result[key] = obj[key];
}
}
return result;
}
//返回传递给他的任意对象的类
function isClass(o) {
if (o === null) return "Null";
if (o === undefined) return "Undefined";
return Object.prototype.toString.call(o).slice(8, -1);
}
function _pageSearchMoren() {
var cars = ["查询", "取消"];
var cols = deepClone(searchCol);
$.each(cols, function (i, e) {
if (e.labtype == "combox") {
cols[i].data = "";
}
});
debugger;
var iframename = $(getFrame()).attr("name");
var url = "/Content/SearchComm.html?data=" + encodeURI(JSON.stringify(cols)) + "&lastsearch=" + encodeURI(JSON.stringify(lastSearch)) + "&framename=" + iframename;
dlog.open("查询条件", cars, "sm", url,
function (res) {
LoadGrid(res);
},
function () {
},
function () {
return false;
},
function () {
return false;
}
);
}
function LoadGrid(jdata) {
var postData = $('#jqGrid').jqGrid("getGridParam", "postData");
$.each(lastSearch, function (k, v) {
delete postData[k];
});
lastSearch = jdata;
// alert(JSON.stringify(jdata));
// $('#jqGrid').jqGrid('clearGridData');
$.extend(jdata, { totalrows: 0 });
$("#jqGrid").jqGrid('setGridParam', {
postData: jdata, page: 1
}); //重新载入
$("#jqGrid").trigger("reloadGrid");
// $("#jqGrid").trigger("reloadGrid");
toSetTooBarVal();
}
function ReloadGrid() {
$("#jqGrid").trigger("reloadGrid");
}
$(document).ready(function () {
//页面查询按钮及查询条件加载
$("#jqGrid").jqGrid({
url: dataUrl,
mtype: "POST",
datatype: "json",
colModel: dataCol,
viewrecords: true, // show the current page, data rang and total records on the toolbar
shrinkToFit: shrinkToFit,
width:1000,
height: 200,
loadonce: false,
pager: "#jqGridPager",
footerrow: footerrow,
rownumbers: true,
rowNum: 30,
rowList: [30, 50, 100,500],
cmTemplate: { sortable: false },
jsonReader: {
root: "DataList", page: "CurrPage", total: "PageTotal", // 很重要 定义了 后台分页参数的名字。
records: "Records", repeatitems: false, id: gridConfig.selectcol
},
prmNames: {
//page:"page", // 表示请求页码的参数名称
//rows:"rows", // 表示请求行数的参数名称
//sort: "sidx", // 表示用于排序的列名的参数名称
//order: "sord", // 表示采用的排序方式的参数名称
//search:"_search", // 表示是否是搜索请求的参数名称
//nd:"nd", // 表示已经发送请求的次数的参数名称
//id:"id", // 表示当在编辑数据模块中发送数据时,使用的id的名称
//oper:"oper", // operation参数名称(我暂时还没用到)
//editoper:"edit", // 当在edit模式中提交数据时,操作的名称
//addoper:"add", // 当在add模式中提交数据时,操作的名称
//deloper:"del", // 当在delete模式中提交数据时,操作的名称
//subgridid:"id", // 当点击以载入数据到子表时,传递的数据名称
//npage: null,
totalrows: "Records" // 表示需从Server得到总共多少行数据的参数名称,参见jqGrid选项中的rowTotal
},
gridComplete: completeMethod,
loadComplete: function loadcompleteMethod(xhr) {
if (typeof (_afterLoadDataload) === "function") {
_afterLoadDataload(xhr);
}
},
multiselect: gridConfig.multiselect
, beforeRequest: BeforeRequest
, beforeSelectRow: BeforeSelectRow
});
//$("#jqGrid").jqGrid('setGroupHeaders', {
// useColSpanStyle: true,
// groupHeaders: [
// { startColumnName: 'jibensalaryName', numberOfColumns: 3, titleText: '薪资待遇' }
// ]
//});
jQuery("#jqGrid").jqGrid('navGrid', "#jqGridPager", { edit: false, add: false, del: false, search: false, refresh: true });
doResize();
});
function BeforeSelectRow() {
}
function BeforeRequest() {
var ischeck = true;
if (typeof (_beforeSearch) === "function") {
ischeck = _beforeSearch();
if (!ischeck) {
return false;
}
}
if (!isfirst) {
return;
}
var jsons = GetSearchEnd();
if (jsons == undefined || jsons == false || jsons.length == 0) {
return;
}
$.extend(jsons, { totalrows: 0 });
$("#jqGrid").jqGrid('setGridParam', {
postData: jsons, page: 1
}); //重新载入
}
function GetGridSelect() {
return jQuery('#jqGrid').jqGrid('getGridParam', 'selarrrow');
}
var isfirst = true;
function completeMethod() {
isfirst = false;
var recordsno = $('#jqGrid').getGridParam('records');
var postData = $('#jqGrid').jqGrid("getGridParam", "postData");
$.extend(postData, { totalrows: recordsno });
$(".J_menuItem").on("click", appendTab);
//sumtype: "sum", sumtxt:"类型:{0}"
var sumstr = "";
$.each(dataCol, function (index, item) {
if (item.sumtype != undefined) {
if (item.sumtype == "sum") {
var htmlinfo = "";
var sum_amount = $("#jqGrid").getCol(item.name, false, 'sum');
if (item.sumtxt != undefined && item.sumtxt.indexOf('{0}' > -1)) {
htmlinfo = item.sumtxt.replace("{0}", sum_amount);
}
else {
htmlinfo = sum_amount;
}
sumstr += ',"' + item.name + '":"' + htmlinfo + '"';
}
}
});
if (sumstr != "") { sumstr = "{" + sumstr.substring(1) + "}"; } else { sumstr = "{}"; }
// alert(sumstr);
// var sum_amount = $("#jqGrid").getCol('ID', false, 'sum');
$("#jqGrid").footerData('set', jQuery.parseJSON(sumstr));
var userdata = jQuery("#jqGrid").jqGrid('getGridParam', 'userData');
if (userdata != undefined && userdata != "" && userdata.Result != undefined && userdata.Message != undefined) {
if (userdata.Result == false && userdata.Message != "") {
msg.err(userdata.Message);
}
if (userdata.Result == true && userdata.Message != "") {
msg.info(userdata.Message);
}
}
if (typeof (_afterSearch) === "function") {
ischeck = _afterSearch();
}
if (typeof (_afterLoadData) === "function") {
_afterLoadData();
}
}