87,909
社区成员
发帖
与我相关
我的任务
分享
{
"total": 4,
"rows": [
{
"id": "K01",
"name": "P",
"type": "N",
"n1": 36.5,
"n2": "Large",
"n3": "EST-1",
"n4": "r"
},
{
"id": "K01",
"name": "P",
"type": "N",
"n1": 36.5,
"n2": "Large",
"n3": "EST-1",
"n4": "r"
},
{
"id": "K9",
"name": "Dalmation",
"type": 12,
"n1": 36.5,
"n2": "Spotted Adult Female",
"n3": "EST-10",
"n4": "123321"
},
{
"id": "K9",
"name": "Dalmation",
"type": 12,
"n1": 36.5,
"n2": "Spotte Adult Female",
"n3": "EST-10",
"n4": "123321"
}
]
}
$.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;
}
}
}
});
});
});
}
});
function MergeCells(tableID, fldList) {
var Arr = fldList.split(",");
var dg = $('#' + tableID);
var fldName;
var RowCount = dg.datagrid("getRows").length;
var span;
var PerValue = "";
var CurValue = "";
var length = Arr.length - 1;
var rows = dg.datagrid("getRows");
for (i = length; i >= 0; i--) {
fldName = Arr[i];
PerValue = "";
span = 1;
for (row = 0; row <= RowCount; row++) {
if (row == RowCount) {
CurValue = "";
}
else {
CurValue = dg.datagrid("getRows")[row][fldName];
}
//同组信息合并单元格,添加限制条件
if (PerValue == CurValue &&rows[row-1]&&rows[row]["id"] == rows[row - 1]["id"])
{
span += 1;
}
else {
var index = row - span;
dg.datagrid('mergeCells', {
index: index,
field: fldName,
rowspan: span,
colspan: null
});
span = 1;
PerValue = CurValue;
}
}
}
}