그리드 » Event

on_itemeditshow

Description

그리드 아이템이 편집 상태가 시작/종료 시점에 발생하는 이벤트이며, 자세한 내용은 샘플 소스를 참조한다.

Parameters

Parameters Type Description
objInst INSTANCE 이벤트가 발생한 오브젝트
nRow long 그리드 행 인덱스 (Zero-Based)
nColumn long 그리드 열 인덱스 (Zero-Based)
bShowEdit BOOL 편집 상태 시작/종료 여부

Return Value

Type Description
void

Remark

이벤트가 발생하기 위해서는 아이템이 편집 가능한 상태이어야 한다.

편집 모드가 시작될 때 기본 동작은, 기존 텍스트는 모두 선택되어 지고, 커서는 맨 마지막에 위치한다.

on_itemeditshow 이벤트를 이용하면 편집 모드가 시작될 때, 커서 위치나, 텍스트 선택 형태를 변경할 수 있다.

또한 예제와 같이 원본 데이터와 표시용 데이터를 분리하여 처리할 수도 있다.

Example

// 그리드(이름: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);
    }
}

See Also

on_itemeditcomplete
setitemeditsel

Viewer Ver.

9.1.1.1

Update Date

20230612