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);
}
}
}
});
}
|