PivotControlBase
Properties
listenerCount: number (opens in a new tab) readonly
등록된 리스너 개수를 반환한다.
default: undefined
Methods
addListener(listener): void (opens in a new tab)
이벤트 리스너를 추가한다.
| Parameter | Type | Description |
|---|---|---|
| listener | UIControlEvents | 이벤트 리스너 |
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();
}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에서 호출하여 예외 발생 시에도 실행되도록 해야 한다.
isUpdating(): boolean (opens in a new tab)
현재 이벤트 발생이 중단된 상태인지 확인한다.
return 이벤트 발생이 중단된 상태이면 true, 그렇지 않으면 false
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 | UIControlEvents\[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 | UIControlEvents\[K] | 이벤트 핸들러 함수 |
removeListener(listener): boolean (opens in a new tab)
이벤트 리스너를 제거한다.
| Parameter | Type | Description |
|---|---|---|
| listener | UIControlEvents | 이벤트 리스너 |
return 제거 성공 여부
resetUpdate(): void (opens in a new tab)
이벤트 락 카운터를 강제로 0으로 리셋한다.
경고: 이 메서드는 예외 처리 누락 등으로 인해 이벤트 락이 영구적으로 걸린 경우에만 사용해야 한다. 정상적인 흐름에서는 beginUpdate()/endUpdate()를 올바르게 사용해야 한다.
// 디버깅이나 에러 복구 시
if (table.isUpdating()) {
console.warn('Event lock is stuck, resetting...');
table.resetUpdate();
}