티스토리 뷰

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로 변경해 처리속도 향상을 기대해볼 수 있다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함