ReactJS row merge
페이지 정보
작성자 jaylee 작성일 2024-04-19 16:44 조회 169회 댓글 0건본문
관련링크
안녕하세요.
그리드 row merge관련하여 문의드립니다.
아래 그림과같이
1. MergeManager 첫번째 두번째 줄의 Serl Cell 머지가 필요합니다.
ex) 아래 그림의 1번 2번 row의 첫번째 Cell인 Serl 머지하여 체크박스가 하나로 변경되어야함
예제소스가 있으면 가이드 부탁드립니다.
2. 아래 그림에 3번(빨간색박스)과 같이 홀수인 경우 cell 머지를 하였습니다.
이 경우 해당 Cell에 데이터 설정방법에 대한 예제소스도 가이드 부탁드립니다.
MergeManager 예제소스 class CustomMergeManager extends MergeManager {
getMergedRange = (panel: GridPanel, row: number, col: number, clip = true): any => {
const test = 0
const rng = new CellRange(row, col)
if (panel.cellType === CellType.Cell) {
// 짝수인경우
if (rng.row % 2 === 0) {
for (let i = rng.col; i < panel.columns.length - 1; i++) {
if ([0, 1, 2, 3].includes(i)) {
return rng
}
if (i < 13 && i > 3) {
rng.col2 = 12
rng.col = 4
return rng
}
}
}
return rng
}
if (panel.cellType === CellType.ColumnHeader) {
const rng = new CellRange(row, col)
// expand left/right
for (let i = rng.col; i < panel.columns.length - 1; i++) {
if (
panel.getCellData(rng.row, i, true) !== panel.getCellData(rng.row, i + 1, true)
) {
break
}
rng.col2 = i + 1
}
for (let i = rng.col; i > 0; i--) {
if (
panel.getCellData(rng.row, i, true) !== panel.getCellData(rng.row, i - 1, true)
) {
break
}
rng.col = i - 1
}
// expand up/down
for (let i = rng.row; i < panel.rows.length - 1; i++) {
if (
panel.getCellData(i, rng.col, true) !== panel.getCellData(i + 1, rng.col, true)
) {
break
}
rng.row2 = i + 1
}
for (let i = rng.row; i > 0; i--) {
if (
panel.getCellData(i, rng.col, true) !== panel.getCellData(i - 1, rng.col, true)
) {
break
}
rng.row = i - 1
}
return rng
}
}
}
댓글목록
등록된 댓글이 없습니다.