onEndDrag (event)

드래그된 행(들)이 드랍되는 시점에 호출되는 이벤트입니다.
리턴 값에 따라 드래그 드랍을 허용하거나 거부하고,
드랍될 위치를 지정할 수 있습니다.

IBSheet 드래그 이벤트

시트 내 혹은 시트 간 행 드래그 이벤트입니다.
시트 간 이동 시, 모든 이벤트(onStartDrag, onEndDrag, onAfterRowMoveToSheet, onDragFinish)는 드래그 시작 시트에서만 발생합니다.

Syntax

    onEndDrag : function(paramObject) {

    }
or
    sheet.bind("onEndDrag" , function(paramObject) {});

Parameters

Name Type Description
sheet object 드래그가 시작된 시트 객체
row object 단일 행 드래그 시 이동할 행의 데이터 로우 객체
tosheet object 행이 이동할 대상 시트 객체
torow object 드랍될 위치 기준의 데이터 로우 객체
type number 드래그 드랍 허용 여부 및 드랍 위치 정보
0:드래그 드랍 불가
1:torow 데이터 로우 객체의 위쪽에 드랍(드랍될 시트의 데이터가 없을 경우도 이에 해당)
2: 이동한 대상 시트가 트리/그룹인 경우 torow 데이터 로우 객체의 하위 노드에(자식) 드랍
3:torow 데이터 로우 객체의 아래쪽에 드랍
4: 시트 외부 영역에 드랍
x number 드랍 시 마우스 커서 x좌표(브라우저 기준)
y number 드랍 시 마우스 커서 y좌표(브라우저 기준)
rows array[object] 복수 행 드래그 시 이동 대상 행들의 데이터 로우 객체 배열

Return

number

Return Value Description
0 드래그 드랍 취소
1 torow 위쪽에 드랍
2 torow 하위 노드로 드랍 (트리/그룹 시트)
3 torow 아래쪽에 드랍
4 시트 외부 영역에 드랍

Example

options.Events = {
    onEndDrag:function(evtParam){
        // 다른 시트로 이동하는 경우만 검사
      if (evtParam.sheet !== evtParam.tosheet) {

        // 복수행 드래그인 경우만 처리
        var rowsToCheck = evtParam.rows && evtParam.rows.length
        ? evtParam.rows
        : evtParam.row
          ? [evtParam.row]
          : [];

        var blocked = false;
        for (var i = rowsToCheck.length - 1; i >= 0; i--) {

          var moveRow = rowsToCheck[i];

          // 여기서 개별 행마다 체크
          if (
            moveRow.sName === "김미경" &&
            evtParam.torow &&
            evtParam.torow.deptId &&
            evtParam.torow.deptId.startsWith("SALES")
          ) {

            blocked = true;
            
            setTimeout(function(){
              evtParam.sheet.showMessageTime(
                "김미경은 영업부서로 이동할 수 없습니다.",
                800
              );
            },10);
            
            // 복수 드래그일 경우 실제 배열 제거
            if (evtParam.rows && evtParam.rows.length) {
              evtParam.rows.splice(i, 1);
            } else {
              // 단일 드래그면 전체 취소
              return 0;
            }
          }
        }
      }
    }
}

Read More

Since

product version desc
core 8.0.0.0 기능 추가
core 8.3.0.28 type:4 기능 추가