다음과 같은 그리드 상태에서 헤더의 체크박스를 클릭했을 때
전체선택 or 전체해제 동작이 되도록 하기 위한 공통함수를 작성했다
먼저 헤드값을 클릭했을 때 발생하는 onheadclick 이벤트에 함수를 걸어준다
this.grd00_onheadclick = function(obj:nexacro.Grid,e:nexacro.GridClickEventInfo)
{
if (e.col == 0) {
this.clickHeadCheckBox(obj, "CHK");
}
};
그리고 clickHeadCheckBox라는 함수를 작성해준다
체크박스 값을 바꿔주는 동작을 하는 곳이다
/******************************************************************************
* Function명 : this.clickHeadCheckBox
* 설명 : 파일 사이즈 체크
* Params : obj - 해당 그리드
* strColName - 체크박스에 바인드되어있는 컬럼명
* 사용법 :
* if(e.col == 0){
* this.clickHeadCheckBox(this.grd00, "CHK");
* }
*******************************************************************************/
this.clickHeadCheckBox = function (obj, strColName)
{
var headerCell = obj.getBindCellIndex("body", strColName);
var checkValue = "1";
if(obj.getCellProperty("Head", headerCell, "displaytype") == "checkboxcontrol") {
if (obj.getCellProperty("Head", headerCell, "text") == "1") { //현재 체크박스 값과 반대되게
checkValue = "0";
} else {
checkValue = "1";
}
}
obj.setCellProperty("Head", headerCell, "text", checkValue); //헤더 체크박스 값 변경
var objDataset = obj.getBindDataset(); //그리드에 바인드되어있는 dataset 가져옴
if(objDataset.getRowCount() > 0) {
objDataset.set_enableevent(false); //이벤트 비활성화
for (var i=0; i<objDs.getRowCount(); i++) {
objDataset.setColumn(i, strColName, checkValue); //체크박스를 checkValue로 설정
}
objDataset.set_enableevent(true); //이벤트 활성화
}
};
끘~
주 블로그는 네이버 블로그입니다
원본 게시글의 링크
https://blog.naver.com/jisoo___/222605562789
728x90
반응형