그리드 아이템이 편집 상태가 시작/종료 시점에 발생하는 이벤트이며, 자세한 내용은 샘플 소스를 참조한다.
Parameters | Type | Description |
---|---|---|
objInst | INSTANCE | 이벤트가 발생한 오브젝트 |
nRow | long | 그리드 행 인덱스 (Zero-Based) |
nColumn | long | 그리드 열 인덱스 (Zero-Based) |
bShowEdit | BOOL | 편집 상태 시작/종료 여부 |
Type | Description |
---|---|
void |
이벤트가 발생하기 위해서는 아이템이 편집 가능한 상태이어야 한다.
편집 모드가 시작될 때 기본 동작은, 기존 텍스트는 모두 선택되어 지고, 커서는 맨 마지막에 위치한다.
on_itemeditshow 이벤트를 이용하면 편집 모드가 시작될 때, 커서 위치나, 텍스트 선택 형태를 변경할 수 있다.
또한 예제와 같이 원본 데이터와 표시용 데이터를 분리하여 처리할 수도 있다.
// 그리드(이름:grd)는 두개의 칼럼으로 구성되어 있다.
// 첫번째 칼럼은 편집 가능 상태이고,
// 원본 데이터에 대한 Display 데이터(소수점 2자리까지 표시)를 표시한다.
// 두번째 칼럼은 Hidden 상태이고, 원본 데이터를 저장한다.
/**
* 그리드 아이템이 편집 상태가 시작/종료 시점에 발생하는 이벤트
*
* @param {Object} objInst 그리드 컴포넌트 인스턴스
* @param {number} nRow 그리드 행 인덱스 (Zero-Based)
* @param {number} nColumn 그리드 열 인덱스 (Zero-Based)
* @param {boolean} bShowEdit 편집 시작/종료 여부
*/
function grdNormal_on_itemeditshow(objInst, nRow, nColumn, bShowEdit)
{
factory.consoleprint("on_itemeditshow> Start");
factory.consoleprint("on_itemeditshow> Grid Object Name = " + objInst.getname());
factory.consoleprint("on_itemeditshow> nRow = " + nRow);
factory.consoleprint("on_itemeditshow> nColumn = " + nColumn);
factory.consoleprint("on_itemeditshow> bShowEdit = " + bShowEdit);
var strOriginalText; // 원본 데이터 문자열
var strDisplayText; // 표시용 데이터 문자열
// 첫번째 칼럼이 아니면, 그냥 리턴
if(nColumn != 0) {
return;
}
// 편집 모드가 시작되는 이벤트인 경우
if (bShowEdit == true) {
// 원본 데이터 칼럼에서 데이터를 가져옴
strOriginalText = grd.getitemtext(nRow, nColumn + 1);
// 원본 데이터를 Display 칼럼에 표시
grd.setitemeditingtext(strOriginalText);
// 그리드의 에디트의 텍스트를 모두 선택한 상태로 표시하고,
// 커서를 마지막으로 이동
grd.setitemeditsel(0, -1);
}
// 편집 모드가 종료되는 이벤트인 경우
else {
// 사용자가 입력한 원본 데이터를 변수에 저장
strOriginalText = grd.getitemtext(nRow, nColumn);
// 원본 데이터를 원본 칼럼에 저장
grd.setitemtext(nRow, nColumn + 1, strOriginalText);
// 소숫점 2자리를 기준으로 반올림하여 Display 데이터 설정
strDisplayText = parseFloat(strOriginalText).toFixed(2);
// Display 데이터 표시
grd.setitemtext(nRow, nColumn, strDisplayText);
}
}