谢谢啊!列合并要怎么改?
var columnNames = ["ProductId", "name", "age", "area", "city", "tel", "address"];
var listivewName = "表格1";
function getSheet() {
return $("#" + listivewName).children().wijspread("spread").getActiveSheet();
}
function getListview() {
return Forguncy.Page.getListView(listivewName);
}
mergeSheetWithSameValue();
var listview = getListview();
var sheet = getSheet();
listview.bind("reloaded", null, function (e) {
mergeSheetWithSameValue();
});
var rowCount = listview.getRowCount();
sheet.bind(GcSpread.Sheets.Events.TopRowChanged, function (sender, args) {
Forguncy.DelayRefresh.Push(this, function () {
var newRowCount = getListview().getRowCount();
if (rowCount != newRowCount) {
mergeSheetWithSameValue();
rowCount = newRowCount;
}
}, "merge");
//var newRowCount = getListview().getRowCount();
//if (rowCount != newRowCount) {
// mergeSheetWithSameValue();
// rowCount = newRowCount;
//}
});
function mergeSheetWithSameValue() {
var sheet = getSheet();
sheet.isPaintSuspended(true);
clearSpan(sheet);
var rowCount = getListview().getRowCount();
var colCount = columnNames.length;
for (var c = 0; c < colCount; c++) {
for (var r = 0; r < rowCount;) {
var preColSpan = 1;
if (c === 0) {
preColSpan = rowCount;
} else {
var span = sheet.getSpan(r, c - 1);
if (span) {
preColSpan = span.rowCount;
}
}
setSpan(sheet, r, c, preColSpan);
r += preColSpan;
}
}
sheet.isPaintSuspended(false);
}
function clearSpan(sheet) {
var spans = sheet.getSpans();
if (!spans) {
return;
}
for (var i = 0; i < spans.length; i++) {
sheet.removeSpan(spans[i].row, spans[i].col);
}
}
function setSpan(sheet, row, col, rowCount) {
for (var r = row; r < row + rowCount;) {
var startRow = r;
var value = getSheetValue(startRow, col);
for (var k = r + 1; ; k++) {
if (k === row + rowCount || value !== getSheetValue(k, col)) {
var span = k - startRow;
if (span > 1) {
sheet.addSpan(startRow, col, span, 1);
}
r = k;
break;
}
}
}
}
function getSheetValue(row, col) {
return getListview().getValue(row, columnNames[col]);
} |