$(function() {
扩展datagrid;
extendDatagrid();
jQuery.ajaxSettings.traditional = true;
$('#dg').datagrid({
title:dateTime+'班组月报表',
height : dialogHeight*0.85, //pageSize : 50,// 默认选择的分页是每页10行数据
//pageList : [ 50, 100, 200 ],// 可以选择的分页集合
nowrap : true,// 设置为true,当数据长度超出列宽时将会自动截取
striped : true,// 设置为true将交替显示行背景。
url : 'report_dailyCrewController/getRe_monthlyCrewReport.do',// url调用Action方法
loadMsg : '数据装载中......',
singleSelect : true,// 为true时只能选择单行 为了实现批量删除必须隐去
selectOnCheck : true,
checkOnSelect : true,
fitColumns : false,// 允许表格自动缩放,以适应父容器
rownumbers : false,// 行数
columns : column,
scrollbarSize :0,
frozenColumns:[
[{field:"workingAreaName",'title':'工区',width:100},
{field:"workingTeamName",'title':'班组',width:100},
{field:"elmtName",'title':'要项',width:100},
{field:"amountMesr",'title':'日期',width:100}
]],
onLoadSuccess : function() {
//指定你要冻结的列
$('#dg').datagrid("autoMergeCells", ['workingAreaName', 'workingTeamName']);
$(this).datagrid('resize');
}
});
});
function extendDatagrid(){
$.extend($.fn.datagrid.methods, {
autoMergeCells: function (jq, fields) {
return jq.each(function () {
var target = $(this);
if (!fields) {
fields = target.datagrid("getColumnFields");
}
var rows = target.datagrid("getRows");
var i = 0,
j = 0,
temp = {};
for (i; i < rows.length; i++) {
var row = rows[i];
j = 0;
for (j; j < fields.length; j++) {
var field = fields[j];
var tf = temp[field];
if (!tf) {
tf = temp[field] = {};
tf[row[field]] = [i];
} else {
var tfv = tf[row[field]];
if (tfv) {
tfv.push(i);
} else {
tfv = tf[row[field]] = [i];
}
}
}
}
$.each(temp, function (field, colunm) {
$.each(colunm, function () {
var group = this;
if (group.length > 1) {
var before,
after,
megerIndex = group[0];
for (var i = 0; i < group.length; i++) {
before = group[i];
after = group[i + 1];
if (after && (after - before) == 1) {
continue;
}
var rowspan = before - megerIndex + 1;
if (rowspan > 1) {
target.datagrid('mergeCells', {
index: megerIndex,
field: field,
rowspan: rowspan
});
}
if (after && (after - before) != 1) {
megerIndex = after;
}
}
}
});
});
});
}
});
}