Programming/nexacro
[넥사크로] 그리드 Head클릭시 체크박스 전체선택 이벤트 추가
감성적인 개발자
2023. 10. 19. 11:06
1. 그리드 headclick 이벤트 추가
2. 이벤트 작성
head의 체크박스 인덱스는 0번째라고 가정한다.
this.Grid00_onheadclick = function(obj:nexacro.Grid,e:nexacro.GridClickEventInfo){
try {
if (e.col == 0) { /*체크박스 인덱스 : 0*/
var checkValue;
if (obj.getCellProperty("Head", 0, "text") == "1") {
obj.setCellProperty("Head", 0, "text", "0"); //체크해제
checkValue = "0";
} else {
obj.setCellProperty("Head", 0, "text", "1"); //체크
checkValue = "1";
}
this.Dataset00.set_enableevent(false);
for(var i = 0; i < this.Dataset00.rowcount; i++){
this.Dataset00.setColumn(i, "CHK" /*체크박스 컬럼*/ , checkValue);
}
this.Dataset00.set_enableevent(true);
}
} catch (err) {
//exception 처리
}
};
이벤트 처리 전후 비교
onheadclick 이벤트를 지정해주지 않아도 해당기능을 구현하는데는 문제가 없지만 그리드의 데이터 건수가 많아진다면 이벤트 처리에 많은 자원이 사용된다. setColumn()으로 데이터셋의 컬럼이 변경되면 기본적으로 다음과 같은 이벤트가 call된다.
- cancolumnchange
- oncolumnchanged
- onvaluechanged
값을 지정하는 과정에서 해당 이벤트가 필요하지 않다면, 반복문에 진입하기 전 enableevent를 false로 변경해 처리속도 향상을 기대해볼 수 있다.