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;
}