jQuery Easyui Datagridと同じ連続列を統合して拡張します。
2350 ワード
もっと読む
転載先:http://www.jeasyuicn.com/jquery-easyui-datagrid-the-same-continuous-column-with-extended.html
datagridのon LoadSuccessイベントで呼び出しを行い、データのロードが完了したら自動的に統合することができます。手動でこの方法を呼び出すこともできます。
転載先:http://www.jeasyuicn.com/jquery-easyui-datagrid-the-same-continuous-column-with-extended.html
/**
* author ____′↘
* create date 2012-11-5
**/
$.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;
}
}
}
});
});
});
}
});
使い方:datagridのon LoadSuccessイベントで呼び出しを行い、データのロードが完了したら自動的に統合することができます。手動でこの方法を呼び出すこともできます。
onLoadSuccess:function(){
//
//$(this).datagrid("autoMergeCells");
//
$(this).datagrid("autoMergeCells",['itemid','productid']);
}