[nexacro]
넥사크로 그리드
Cell, 컬럼 내용 복사하기
안녕하세요.
넥사크로 그리드에서 cell 의 내용을 복사하는 방법을 알아보겠습니다.
넥사크로 그리드의 cell 의 edittype 이 none 일 경우 복사가 안되고,
업무와 시스템 성격상 cell 의 내용을 복사해야 할 때가 종종 있습니다.
이럴 때 어떻게 해야 할까요?
방법을 알려드리겠습니다.
아래와 같은 그리드가 있습니다.
아래 그리드의 각 cell 의 edittype 속성은 모두 none 입니다.
먼저 공통함수를 구현합니다.
fn_CopyCellText = function(obj) { //이벤트 발생 오브젝트가 그리드가 아니면 중단 if (obj instanceof nexacro.Grid){ var objDs = obj.getBindDataset(); var intRow = objDs.rowposition; // 바인드된 데이터셋의 현재 레코드 번호 var intCol = obj.getCellPos(); // 그리드의 cell 위치 var navigatorname = new String(system.navigatorname); if(navigatorname.indexOf("IE") != -1 && nexacro._BrowserVersion == "8"|| navigatorname.indexOf("nexacro") >= 0 ){ // IE+Runtime system.clearClipboard(); system.setClipboard("CF_UNICODETEXT", obj.getCellText(intRow, intCol)); }else if(navigatorname.indexOf("IE") != -1){ //IE system.clearClipboard(); system.setClipboard("CF_TEXT", obj.getCellText(intRow, intCol)); }else if(navigatorname.indexOf("Chrome") >= 0 || navigatorname.indexOf("Gecko") >= 0 ){ // Chrome+FireFox this.gfn_setClipboard(obj.getCellText(intRow, intCol)); }else{ trace("unknown environment."); } } }
각 브라우저별로 클립보드에 복사 할 수 있도록 함수를 구현해줍니다.
이제 그리드의 이벤트에 적용을 시켜줍니다.
아래 그림과 같이 표시는 row 에 포커스가 있습니다.
우리는 그 중에 특정 셀을 클릭하여 그 셀의 값을 복사할거에요.
예를 들어 5번째 row의 USE_YN cell 을 클릭합니다.
그럼 N 이라는 값이 복사되야 겠죠?
아래와 같이 이벤트에 구현해줍니다.
this.Grid_onkeydown = function(obj:nexacro.Grid,e:nexacro.KeyEventInfo) { if(e.ctrlkey && e.keycode == 67){ this.fn_CopyCellText(obj); } };
이렇게 그리드의 onkeydown 이벤트에 ctrl + c 가 입력되었을 때
cell 의 값을 복사하는 함수를 넣어줍니다.
그리드의 모든 cell 의 edittype 수정 가능하게 변경할 수는 없지요.
이렇게 하면 그리드의 cell 의 값을 복사할 수 있습니다.
이상 넥사크로 그리드의 셀 값을 복사하는 방법이었습니다.
♥공감과 댓글 그리고 구독은 큰 힘이 됩니다.