목차

그리드 체크로우 기본 가이드

그리드 체크로우는 그리드 행의 체크 상태를 제공하기 위한 기능이다.

그리드 체크로우 상태는 링크된 데이터셋에 동기화된다.

관련 속성으로 use_checkrow, multi_checkrow, multi_check_mode가 있다.

관련 이벤트로 on_checkrowclick, on_checkrowchange가 있다.

관련 API로 getcheckedrowcount, getcheckedrow, ischeckedrow, setcheckedrow, setcheckedallrow, togglecheckedrow, deletecheckedrow가 있다.

예시

템플릿 위치: /HTML5/COMPONENT/GRID/grid_checkrow_basic

템플릿 파일

화면 스크립트

/**
 * 체크로우 클릭 이벤트
 * @param objInst 그리드 인스턴스
 * @param nRow 행 인덱스 (헤더부인 경우, -1)
 * @param bCheckedRow 체크 상태 (체크상태: 1, 해제상태: 0)
 */
function grd_checkrowevent_on_checkrowclick(objInst, nRow, bCheckedRow)
{
	factory.consoleprint("on_checkrowclick> name = " + objInst.getname());
	factory.consoleprint("on_checkrowclick> nRow = " + nRow);
	factory.consoleprint("on_checkrowclick> bCheckedRow = " + bCheckedRow);

	this.grd_checkreventlog.insertitemtext(0, 0, "on_checkrowclick");
	this.grd_checkreventlog.setitemtext(0, 1, objInst.getname());
	this.grd_checkreventlog.setitemtext(0, 2, nRow);
	this.grd_checkreventlog.setitemtext(0, 3, bCheckedRow);
}

/**
 * 체크로우 변경 이벤트
 * @param objInst 그리드 인스턴스
 * @param nRow 행 인덱스 (헤더부인 경우, -1)
 * @param nCheckState 체크 상태 (체크상태: 1, 해제상태: 0, 부분체크상태: 2)
 */
function grd_checkrowevent_on_checkrowchange(objInst, nRow, nCheckState)
{
	factory.consoleprint("on_checkrowchange> name = " + objInst.getname());
	factory.consoleprint("on_checkrowchange> nRow = " + nRow);
	factory.consoleprint("on_checkrowchange> nCheckState = " + nCheckState);

	this.grd_checkreventlog.insertitemtext(0, 0, "on_checkrowchange");
	this.grd_checkreventlog.setitemtext(0, 1, objInst.getname());
	this.grd_checkreventlog.setitemtext(0, 2, nRow);
	this.grd_checkreventlog.setitemtext(0, 3, nCheckState);
}

// "그리드 체크 관련 이벤트 모두 삭제" 버튼 이벤트
function btn_delete_checkreventlog_on_click(objInst)
{
	// 그리드 이벤트 내용 행 모두 삭제
	this.grd_checkreventlog.deleteall();
}

// "getcheckedrowcount" 버튼 이벤트
function btn_getcheckedrowcount_on_click(objInst)
{
	var check_row_count;

	// 체크된 행의 개수를 구함
	check_row_count = this.grd_checkrowapi.getcheckedrowcount();
	factory.consoleprint("check_row_count = " + check_row_count);
	screen.alert("check_row_count = " + check_row_count);
}

// "getcheckedrow" 버튼 이벤트
function btn_getcheckedrow_on_click(objInst)
{
	var select_row;

	// 선택된 행 인덱스를 구함
	select_row = this.grd_checkrowapi.getselectrow();
	factory.consoleprint("select_row = " + select_row);

	// 선택된 행의 다음행부터 체크된 행을 찾음
	check_row_index = this.grd_checkrowapi.getcheckedrow(select_row + 1);
	factory.consoleprint("check_row_index = " + check_row_index);
	screen.alert("check_row_index = " + check_row_index);
}

// "ischeckedrow" 버튼 이벤트
function btn_ischeckedrow_on_click(objInst)
{
	var is_checked, select_row;

	// 선택된 행 인덱스를 구함
	select_row = this.grd_checkrowapi.getselectrow();
	factory.consoleprint("select_row = " + select_row);

	// 행의 체크 상태를 구함
	is_checked = this.grd_checkrowapi.ischeckedrow(select_row);
	factory.consoleprint("is_checked = " + is_checked);
	screen.alert(select_row + "헹 체크 상태 = " + is_checked);
}

// "setcheckedrow" 버튼 이벤트
function btn_setcheckedrow_on_click(objInst)
{
	var is_checked, select_row;

	// 선택된 행 인덱스를 구함
	select_row = this.grd_checkrowapi.getselectrow();
	factory.consoleprint("select_row = " + select_row);

	// 행의 체크 상태를 구함
	is_checked = this.grd_checkrowapi.ischeckedrow(select_row);

	// 행의 체크 상태를 기준으로 체크 상태 토글 처리
	if (is_checked) {
		this.grd_checkrowapi.setcheckedrow(select_row, false);
	}
	else {
		this.grd_checkrowapi.setcheckedrow(select_row, true);
	}
}

// "togglecheckedrow" 버튼 이벤트
function btn_togglecheckedrow_on_click(objInst)
{
	var is_checked, select_row;

	// 선택된 행 인덱스를 구함
	select_row = this.grd_checkrowapi.getselectrow();
	factory.consoleprint("select_row = " + select_row);

	// 행의 체크 상태를 기준으로 체크 상태 토글 처리
	this.grd_checkrowapi.togglecheckedrow(select_row);
}

// "setcheckedallrow" 버튼 이벤트
function btn_setcheckedallrow_on_click(objInst)
{
	var row_count, check_row_count;

	// 행 갯수와 체크된 행 갯수를 구함
	row_count = this.grd_checkrowapi.getrowcount();
	check_row_count = this.grd_checkrowapi.getcheckedrowcount();

	// 전체 행이 체크된 상태인 경우
	if (row_count == check_row_count) {
		// 전체 행 체크 상태 헤제 처리
		this.grd_checkrowapi.setcheckedallrow(false);
	}
	else {
		// 전체 행 체크 상태 처리
		this.grd_checkrowapi.setcheckedallrow(true);
	}
}

// "deletecheckedrow" 버튼 이벤트
function btn_deletecheckedrow_on_click(objInst)
{
	// 체크로우에 체크된 행들을 삭제 처리
	this.grd_checkrowapi.deletecheckedrow();
}

// "enablecheckrowex" 버튼 이벤트
function btn_enablecheckrowex_on_click(objInst)
{
	var is_enabled, select_row;

	// 선택된 행 인덱스를 구함
	select_row = this.grd_checkrowapi.getselectrow();
	factory.consoleprint("select_row = " + select_row);

	// 특정행의 체크박스 활성화 상태를 구함
	is_enabled = this.grd_checkrowapi.isenablecheckrowex(select_row);
	factory.consoleprint("is_enabled = " + is_enabled);

	// 특정행 체크로우 체크 활성화 상태 토글 처리
	this.grd_checkrowapi.enablecheckrowex(select_row, !is_enabled);
}