그리드 아이템에 대한 편집이 완료한 시점에 발생하는 동기식 리턴값 이벤트이다.
Parameters | Type | Description |
---|---|---|
objInst | INSTANCE | 이벤트가 발생한 오브젝트 |
nRow | short | 편집한 로우 인덱스 (Zero-Base) |
nColumn | short | 편집한 컬럼 인덱스 (Zero-Base) |
strPrevItemText | STRING | 편집되기 이전의 텍스트 |
Type | Description |
---|---|
short | 0/1/2 값만 리턴할 수 있다. (Remark 참조) |
기본적으로 편집이 완료되면, 편집이 완료된 아이템을 기준으로 그리드내의 아이템에 대해서 Z-Order 순으로 다음 편집이 가능한 아이템으로 자동으로 편집 위치가 이동된다.
이벤트의 처리 함수의 리턴값에 따라서 편집 아이템 자동 이동 여부 및 편집값 취소 여부가 결정된다.
* Return Value 0 : 편집만 완료하고, 포커스가 이동하지 않는다. 1 : 그리드 내에서 다음으로 편집이 가능한 아이템으로 포커스가 이동한다. 2 : 편집된 값을 취소하고, 포커스가 이동하지 않는다.
// 그리드(이름:grdNormal)는 두개의 칼럼을 가지고 있고,
// 첫번째 칼럼과 두번째 칼럼이 모두 편집 가능 상태이다.
// 사용자가 입력한 데이터가 100 이상을 입력하였으면, 경고창을 띄우고,
// 이전데이터로 원복하거나, 다시 편집 모드를 시작한다.
/**
* 그리드 아이템이 편집 완료 시점에 발생하는 이벤트
*
* @param {Object} objInst 그리드 컴포넌트 인스턴스
* @param {number} nRow 그리드 행 인덱스 (Zero-Based)
* @param {number} nColumn 그리드 열 인덱스 (Zero-Based)
* @param {string} strPrevItemText 편집전 아이템 값
*
* @returns {number} 키 처리 방식
* 0 - 편집만 완료하고, 포커스가 이동하지 않음
* 1 - 그리드 내에서 다음으로 편집이 가능한 아이템으로 포커스 이동
* 2 - 편집된 값을 취소하고, 포커스가 이동하지 않음
*/
function grdNormal_on_itemeditcomplete(objInst, nRow, nColumn, strPrevItemText)
{
factory.consoleprint("on_itemeditcomplete> Start");
factory.consoleprint("on_itemeditcomplete> Grid Object Name = " + objInst.getname());
factory.consoleprint("on_itemeditcomplete> nRow = " + nRow);
factory.consoleprint("on_itemeditcomplete> nColumn = " + nColumn);
factory.consoleprint("on_itemeditcomplete> strPrevItemText = " + strPrevItemText);
// 입력한 데이터를 읽어옴
var strInputText = grdNormal.getitemtext(nRow, nColumn);
// 숫자형으로 변환
var nInputData = parseInt(strInputText, 10);
// 100 이상의 값을 입력한 경우
if(nInputData >= 100) {
// 첫번재 칼럼이면, 이전 데이터로 원복한다.
if(nColumn == 0) {
screen.alert("100이상의 값을 입력하였습니다.");
grdNormal.setitemtext(nRow, nColumn, strPrevItemText);
return 0;
}
// 두번째 칼럼이면, 다시 편집모드로 들어간다.
else if(nColumn == 1) {
screen.alert("100이상의 값을 입력하였습니다.");
grdNormal.setitemeditstart(nRow, nColumn, true);
return 0;
}
}
return 1;
}