我们可以合并显示属于同一列中的一个以上的临近单元格。 合并单元格的标准是指定在ValueColumn.mergeExpression属性中的表达式的结果值。 也就是说,如果用表达式计算各个行并且相关值与上个单元格的值相同,就会合并显示两个单元格。 如果SMART datagrid达式不足以使用时,也可以在mergeCallback属性中,指定JavaScript回调函数。
var col = grid.columnByName('Country');
col.setMergeExpression('value');
// 或,JavaScript回调,
col.setMergeCallback(function (item, column) {
// 如果是用报表导出的网格,就必须通过以下方式局部查找网格,而不是使用全局网格变量。
return column.grid().getValueAt(item, column + grdMain.getValueAt(item, 'flow');
});
"国家_2"列的单元格,只显示国家名称的第一个字。 但是,如果使用ValueColumn.mergeValueCallback或ValueColumn.mergeValueExpression,就可以在合并单元格中,指定显示不同的值。 如果两种属性都没有被指定,则会显示包含在合并中的第一行的值。
var col = grid.columnByName('Country2');
col.setMergeCallback(function (item, column) {
return grdMain.getValueAt(item, column).substr(0, 1);
});
col.setMergeValueCallback(function (item, column, value) {
return value.substr(0, 1);
});