====== 그리드 체크로우 기본 가이드 ======
그리드 체크로우는 그리드 행의 체크 상태를 제공하기 위한 기능이다.
그리드 체크로우 상태는 링크된 데이터셋에 동기화된다.
관련 속성으로 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
템플릿 파일
* [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_checkrow_basic.xml|grid_checkrow_basic.xml]]
* [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_checkrow_basic.js|grid_checkrow_basic.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/COMPONENT/GRID/grid_checkrow_basic|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
/**
* 체크로우 클릭 이벤트
* @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);
}