//数据初始定义 $.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(); } }