MergeCallback
data
가 변경되는 경우에는 그리드가 다시 merge정보를 생성하지만 외부값에 따라 사용자가 직접 merge정보를 갱신할 수 있습니다.
function btnMerge() {
const selection = gridView.getSelection();
const startItem = selection.startItem;
const endItem = selection.endItem;
if (startItem === endItem) {
return;
}
mergeCnt++;
const columnName = selection.startColumn;
if (!mergeInfo[columnName]) {
mergeInfo[columnName] = {};
}
for (let i = startItem; i <= endItem; i++) {
const dataRowId = gridView.getDataSource().getDataRowId(i);
mergeInfo[columnName][dataRowId] = mergeCnt;
}
const mergeCallback = (grid, column, dataRow, value) => {
const dataRowId = grid.getDataSource().getDataRowId(dataRow);
return mergeInfo[column.name] && mergeInfo[column.name][dataRowId];
};
gridView.columnByName(gridView.getCurrent().column).mergeCallback = mergeCallback;
gridView.columnByName(gridView.getCurrent().column).breakMergeOnEmpty = true;
}