시트의 이벤트는 아래와 같이 두 가지 방법으로 설정할 수 있습니다.
시트를 초기화하는 options 속성 설정 시 Events 속성을 통해 다음과 같이 설정합니다.
var OPTS = {
Cfg:{ ... },
Cols:[ ... ],
"Events":{
onAfterChange:function(evtParam){
... 이벤트 발생 시 로직 구현 ...
}
}
};
IBSheet.create(
id:"sheet",
el:"sheet_div",
options:OPTS
)
객체가 생성되고 난 이후에는 bind 함수를 통해 이벤트를 설정하실 수 있습니다.
// onAfterChange 이벤트
sheet.bind("onAfterChange", function(evtParam) {
});
이벤트 발생시 evtParam에는 각 이벤트 별로 이벤트가 발생한 시트 객체나, 행 객체, 열이름 등이 들어 있습니다.
주의 : 객체 생성 이후에 이벤트를 추가하는 것은 onBeforeCreate에서 공통으로 처리한 로직을 무시하므로 권장하지 않습니다.
모든 이벤트 콜백은 1개의 객체 파라미터(evtParam)를 받습니다. 공통으로 이벤트가 발생한 시트 객체(sheet)와 이벤트명(eventName)이 들어 있으며, 이벤트에 따라 row(행 객체), col(열 이름), value, x, y, keyCode 등이 포함됩니다.
onBeforeChange: function(evtParam) {
evtParam.sheet; // 이벤트가 발생한 시트 객체
evtParam.eventName; // 이벤트명 (예: "onBeforeChange")
evtParam.row; // 행 객체
evtParam.col; // 열 이름
evtParam.val; // 변경하려는 값 (이벤트마다 값 관련 파라미터명이 다름: onBeforeChange는 val)
}

일부 이벤트는 콜백에서 값을 return해 동작을 제어할 수 있습니다. (자세한 동작은 각 이벤트 문서의 Return 설명 참고)
| 이벤트 | return 동작 |
|---|---|
| onBeforeSave | 1(true) 리턴 시 저장 작업 중단 |
| onStartEdit | 1(true) 리턴 시 편집 불가 |
| onBeforeChange | 변경할 값을 리턴하면 사용자 입력과 무관하게 그 값이 셀에 반영 |
| onEndEdit | save 인자가 true일 때 리턴 값으로 셀에 반영 (true 리턴 시 편집 유지) |
options.Events = {
onAfterChange :function(evtParam){
if(evtParam.row["ConFirmYn"]=="Y"){
alert("금월 결산이 종료되었습니다.</br>마감 정보를 확인하시고 수정해 주세요.");
}else if(evtParam.value > evtParam.row["MaxBud"]){
alert("입력값이 최대 예산치보다 높습니다.");
}
},
onClick:function(evtParam){
if(evtParam.col == "myBtn1"){
if(formValidWork()){
document.frm.submit();
}
}
}
}
| product | version | desc |
|---|---|---|
| core | 8.0.0.0 | 기능 추가 |