■ Grid.OnPaste

SECTION

 

Event

SINCE

 

NewPacket : N/A          Max : 1,2,1,159      Unicode : 2,0,1,142

DESCRIPTION

 

BlockPasteMode가 TRUE로 지정되고, Edit 창이 활성화 되지 않은 상태에서(입력중 상태가 아닌 상태) Ctrl+V키를 누른 경우 이벤트가 발생된다.

OnPaste Event Handler 내에서 ClipBoard객체, Script, Grid, DataSet 메소드와 속성을 이용하여 원하는 형태의 붙여 넣기를 수행 할 수 있다.

-         이벤트 만 발생하며, Grid 내부적으로 붙여 넣기를 수행하지는 않는다.

-         클립보드 Text를 DataSet의 Method를 통하여 입력하는 경우 Grid에 직접 입력 하는 것이 아니기 때문에 Grid의 입력제한, Column의 Show/Hide등 처리에 주의가 필요하다.

SYNTAX

 

<script language=JavaScript for=GridID event=OnPaste(row,colid)>

</script>

POSSIBLE VALUES

 

해당없음

PARAMETERS

 

LONG row : Grid에서 Event가 발생한 시점에 현재 선택된 Row Index

BSTR colid : Grid에서 Event가 발생한 시점에 현재 선택된 Column의 ID

 

현재 설정된 SelectionMode와 선택동작에 따라 붙여 넣기 시작 셀의 좌표는 달라지는데, Grid View 영역에 단일 셀 선택이 되어 있는 경우는 해당 셀의 좌표가, 블록 타입으로 다중 셀이 선택이 되어 있는 경우에는 다중 셀의 선택 동작이 시작된 셀의 좌표가, Row 단위 선택인 경우에는 시작 Row의 첫 번째 컬럼에 해당하는 셀의 좌표가 전달된다.

RETURN VALUES

 

해당없음

EXAMPLE

 

[JavaScript]

<script language=JavaScript for=GridID event=OnPaste(row,colid)>

    alert("Occur OnPaste Event :" + "<ROW :" + Row +">"+ "<Colid :" + Colid + ">" )

var strMatrix;

strMatrix = window.clipboardData.getData("Text");

if(strMatrix != null)

{

Tb_Grid.ReDraw=false;

var strRows = strMatrix.split("\r\n"); // 개행문자로 분리

for (i = 0; i < strRows.length; i++)

{

if (Tb_DataSet.CountRow >= (row + i) && strRows[i] != "")

{

Tb_DataSet.RowPosition = row + i;

var StartColIdx = Tb_Grid.GetColumnIndex(colid);

var strCols = strRows[i].split("\t"); // 탭문자로 분리

for (j = 0; j < strCols.length; j++)

{

                           if (Tb_Grid.CountColumn >= (StartColIdx + j))

                               Tb_DataSet.NameString(row + i, Tb_Grid.GetColumnID(Tb_Grid.GetColumnIndex(colid)+j) ) = strCols[j];

                     }

                }

}

Tb_Grid.ReDraw=true;

}

</script>

SAMPLE

 

./sample/OnPaste.html

SEE ALSO

 

BlockPasteMode, DataClip, SelectionMode, OnCopy, CurCol, CurRow, SelCol, SelRow, CountColumn