PivotDataSet
Properties
listenerCount: number (opens in a new tab) readonly
등록된 리스너 개수를 반환한다.
default: undefined
tableCount: number (opens in a new tab) readonly
default: undefined
Methods
add(name, table): void (opens in a new tab)
테이블을 추가합니다.
| Parameter | Type | Description |
|---|---|---|
| name | string (opens in a new tab) | 테이블 이름 |
| table | DataTable | RawTable | DataTable 또는 RawTable 인스턴스 |
addListener(listener): void (opens in a new tab)
이벤트 리스너를 추가한다.
| Parameter | Type | Description |
|---|---|---|
| listener | DataSetEvents | 이벤트 리스너 |
beginUpdate(): void (opens in a new tab)
이벤트 발생을 일시적으로 중단한다.
beginUpdate()와 endUpdate()는 중첩 호출을 지원한다.
endUpdate() 호출 횟수가 beginUpdate() 호출 횟수와 같아지면 이벤트 발생이 재개된다.
중요: 예외 발생 시에도 endUpdate()가 반드시 호출되도록 try-finally 패턴을 사용해야 한다.
table.beginUpdate();
try {
table.setValue(0, 0, 'value1');
table.setValue(0, 1, 'value2');
table.updateRow(1, ['a', 'b', 'c']);
// ... 여러 작업들
} finally {
table.endUpdate();
}clear(): void (opens in a new tab)
모든 테이블을 제거합니다.
clearListeners(): void (opens in a new tab)
모든 이벤트 리스너를 제거한다.
dispose(): null
객체를 해제하고 null을 반환한다.
사용 예: this._obj = this._obj.dispose();
return null
endUpdate(): void (opens in a new tab)
이벤트 발생을 재개한다.
beginUpdate() 호출 횟수만큼 endUpdate()를 호출해야 이벤트 발생이 재개된다.
중요: try-finally 블록의 finally에서 호출하여 예외 발생 시에도 실행되도록 해야 한다.
first(): DataTable | RawTable
forEach(callback): void (opens in a new tab)
| Parameter | Type |
|---|---|
| callback | (name: string, table: DataTable | RawTable) => void |
get(name): DataTable | RawTable
이름으로 테이블을 조회합니다.
| Parameter | Type | Description |
|---|---|---|
| name | string (opens in a new tab) | 테이블 이름 |
return DataTable 또는 RawTable 인스턴스, 없으면 undefined
getAt(index): DataTable | RawTable
| Parameter | Type |
|---|---|
| index | number (opens in a new tab) |
has(name): boolean (opens in a new tab)
지정한 이름의 테이블이 존재하는지 확인합니다.
| Parameter | Type | Description |
|---|---|---|
| name | string (opens in a new tab) | 테이블 이름 |
return 존재 여부
isUpdating(): boolean (opens in a new tab)
현재 이벤트 발생이 중단된 상태인지 확인한다.
return 이벤트 발생이 중단된 상태이면 true, 그렇지 않으면 false
join(leftName, rightName, resultName, options): DataTable
두 테이블을 join하여 새로운 DataTable을 생성하고 DataSet에 추가합니다.
왼쪽 테이블(leftName)은 반드시 DataTable이어야 합니다.
| Parameter | Type | Description |
|---|---|---|
| leftName | string (opens in a new tab) | 왼쪽 테이블의 이름 (DataTable) |
| rightName | string (opens in a new tab) | 오른쪽 테이블의 이름 (DataTable 또는 RawTable) |
| resultName | string (opens in a new tab) | join 결과 테이블의 이름 |
| options | JoinOptions | join 옵션 (type, on 등) |
return join 결과 DataTable
names(): Array (opens in a new tab)<string (opens in a new tab)>
모든 테이블 이름을 반환합니다.
return 테이블 이름 배열
off(eventName, handler): boolean (opens in a new tab)
특정 이벤트에서 핸들러를 제거한다.
const handler = (sender, row) => console.log(row);
table.on('onRowUpdated', handler);
table.off('onRowUpdated', handler);| Parameter | Type | Description |
|---|---|---|
| eventName | never | 이벤트 이름 |
| handler | DataSetEvents\[K] | 제거할 이벤트 핸들러 함수 |
return 제거 성공 여부
on(eventName, handler): void (opens in a new tab)
특정 이벤트에 핸들러를 등록한다.
addEventListener()보다 간편한 방식으로 개별 이벤트 핸들러를 등록할 수 있다.
table.on('onRowUpdated', (sender, row, oldValues) => {
console.log('Row updated:', row);
});| Parameter | Type | Description |
|---|---|---|
| eventName | never | 이벤트 이름 |
| handler | DataSetEvents\[K] | 이벤트 핸들러 함수 |
remove(name): boolean (opens in a new tab)
테이블을 제거합니다.
| Parameter | Type | Description |
|---|---|---|
| name | string (opens in a new tab) | 테이블 이름 |
return 제거 성공 여부
removeListener(listener): boolean (opens in a new tab)
이벤트 리스너를 제거한다.
| Parameter | Type | Description |
|---|---|---|
| listener | DataSetEvents | 이벤트 리스너 |
return 제거 성공 여부
resetUpdate(): void (opens in a new tab)
이벤트 락 카운터를 강제로 0으로 리셋한다.
경고: 이 메서드는 예외 처리 누락 등으로 인해 이벤트 락이 영구적으로 걸린 경우에만 사용해야 한다. 정상적인 흐름에서는 beginUpdate()/endUpdate()를 올바르게 사용해야 한다.
// 디버깅이나 에러 복구 시
if (table.isUpdating()) {
console.warn('Event lock is stuck, resetting...');
table.resetUpdate();
}tables(): Array (opens in a new tab)<DataTable | RawTable>
모든 테이블을 반환합니다.
return 테이블 배열