if ($.fn.datagrid.methods) { $.extend($.fn.datagrid.methods, { outExcel: function (jq, params) { var defaults = { type: 0,//0:全部 1:当前页 controllerName: "", actionName: "", conditions: {} } var model = $.extend(defaults, params); if (typeof (model.conditions) != 'object') { showMsg('无效的查询参数对象'); return; } if (model.controllerName == "" || model.actionName == "") { showMsg("无效的页面参数"); return; } return jq.each(function () { var $target = $(this); var options = $target.datagrid('options'); var columns = options.columns[0]; if (!columns || columns.length == 0) { showMsg('无效的列集合'); return; } model.columns = JSON.stringify(columns); model.conditions = JSON.stringify(model.conditions); ajaxPost("/System/outExcel", model, function (data) { data = JSON.parse(data); if (data.state == "success") { $('<form id="formExcel" method="post" action="/System/DownloadExcel?filename=' + data.content + '"></form>').appendTo('body').submit().remove(); } else { showMsg(data.content); } }) }); } }); /* 加载数据失败提示 */ $.extend($.fn.datagrid.defaults, { onLoadError: function (data) { console.log('onloadError'); console.log(data); $.messager.alert('提示信息', '请求异常', 'info'); $(this).datagrid('loadData', { total: 0, rows: [] }); }, loadFilter: function (data) { //console.log(data); //{"total":27,"rows":[{"rowno_2":"1"},{"rowno_2":"2"}]} //{"state":"error","content":"用户登录异常,请重新登录"} if (data.state != undefined && data.state == "error") { var push = { "total": 0, "rows": ""// 当为[]会出现空的两行 }; showMsg(data.content); return push; } else return data; }, }); /* *增加空行 用于数据不足以填满整个列表 *param jq datagrid对象 */ $.extend($.fn.datagrid.methods, { fillBlankRow: function (jq, options) { var defaults = { onResize: function () { $(jq).datagrid("fillBlankRow"); } }; var params = $.extend({}, defaults, options); var grid = $(jq); var rows = grid.datagrid("getRows"); var length = rows.length; if (length > 0) { var options = grid.datagrid("options"); if (typeof (params.onResize) == "function") { options["onResize"] = function () { params.onResize(); } } var gpanel = grid.datagrid("getPanel"); var gbody1 = gpanel.find(".datagrid-view1 .datagrid-body"); var tbody1 = gbody1.find("table>tbody"); var gbody2 = gpanel.find(".datagrid-view2 .datagrid-body").eq(0); var gbody2table = gbody2.find("table"); var tbody2 = gbody2.find("table>tbody").eq(0); var column1s = grid.datagrid("getColumnFields", true); var column2s = grid.datagrid("getColumnFields"); var td1s = ""; var td2s = ""; //先移除填充行 if (gbody1 != undefined) $(gbody1).find("tr[class='datagrid-blank-row datagrid-row datagrid-row-alt']").remove(); if (gbody2 != undefined) $(gbody2).find("tr[class='datagrid-blank-row datagrid-row datagrid-row-alt']").remove(); var scrollHeight = $(gbody2)[0].scrollHeight; var gbody2_height = $(gbody2).height(); var gbody2table_height = $(gbody2table).height(); var h1 = gbody2_height - gbody2table_height; var h2 = scrollHeight - gbody2table_height; if (options.rownumbers == true && h1 > 0) { td1s += "<td class='datagrid-td-rownumber'><div class=\"datagrid-cell-rownumber\"></div></td>"; if (column1s.length > 0) { $.each(column1s, function (i, field) { var opt = grid.datagrid("getColumnOption", field); if (opt != null && !opt.hidden) { if (opt.checkbox) { td1s += "<td field=\"" + field + "\"><div class=\"datagrid-cell-check\"></div></td>"; } else { td1s += "<td field=\"" + field + "\"><div class=\"datagrid-cell datagrid-cell-c1-" + field + "\"></div></td>"; } } }); } var events = $._data(gbody1.children().get(0), 'events'); if (events != null) { //重新绑定click、dblclick事件 var clickfunc = events.click[0].handler; events.click[0].handler = function (e) { var tt = $(e.target); var tr = tt.closest("tr.datagrid-row"); if (tr.hasClass("datagrid-blank-row")) { return; } clickfunc(e); }; var dblclickfunc = events.dblclick[0].handler; events.dblclick[0].handler = function (e) { var tt = $(e.target); var tr = tt.closest("tr.datagrid-row"); if (tr.hasClass("datagrid-blank-row")) { return; } dblclickfunc(e); }; } } if (tbody2.length > 0 && column2s.length > 0 && h2 > 0) { $.each(column2s, function (i, field) { var opt = grid.datagrid("getColumnOption", field); if (opt != null && !opt.hidden) { if (opt.checkbox) { td2s += "<td field=\"" + field + "\"><div class=\"datagrid-cell-check\"></div></td>"; } else { td2s += "<td field=\"" + field + "\"><div class=\"datagrid-cell datagrid-cell-c" + (options.rownumbers == true ? "2" : "1") + "-" + field + "\"></div></td>"; } } }); var events = $._data(gbody2.get(0), 'events'); if (events != null) { //重新绑定click、dblclick事件 var clickfunc = events.click[0].handler; events.click[0].handler = function (e) { var tt = $(e.target); var tr = tt.closest("tr.datagrid-row"); if (tr.hasClass("datagrid-blank-row")) { return; } clickfunc(e); }; var dblclickfunc = events.dblclick[0].handler; events.dblclick[0].handler = function (e) { var tt = $(e.target); var tr = tt.closest("tr.datagrid-row"); if (tr.hasClass("datagrid-blank-row")) { return; } dblclickfunc(e); }; } } if (td1s != "") { var tr = '<tr class="datagrid-blank-row datagrid-row datagrid-row-alt" style="height:' + h1 + 'px;" >' + td1s + '</tr>'; $(tr).appendTo(tbody1); } if (td2s != "") { var tr = '<tr class="datagrid-blank-row datagrid-row datagrid-row-alt" style="height:' + h2 + 'px;background:#FFFFFF;border-bottom:0;">' + td2s + '</tr>'; $(tr).appendTo(tbody2); } } } }); } |