드래그된 행(들)이 드랍되는 시점에 호출되는 이벤트입니다.
리턴 값에 따라 드래그 드랍을 허용하거나 거부하고,
드랍될 위치를 지정할 수 있습니다.
시트 내 혹은 시트 간 행 드래그 이벤트입니다.
시트 간 이동 시, 모든 이벤트(onStartDrag,onEndDrag,onAfterRowMoveToSheet,onDragFinish)는 드래그 시작 시트에서만 발생합니다.
- 이벤트 발생 순서:
onStartDrag→onEndDrag→onAfterRowMoveToSheet→onDragFinish
onEndDrag : function(paramObject) {
}
or
sheet.bind("onEndDrag" , function(paramObject) {});
| 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] |
복수 행 드래그 시 이동 대상 행들의 데이터 로우 객체 배열 |
number
| Return Value | Description |
|---|---|
0 |
드래그 드랍 취소 |
1 |
torow 위쪽에 드랍 |
2 |
torow 하위 노드로 드랍 (트리/그룹 시트) |
3 |
torow 아래쪽에 드랍 |
4 |
시트 외부 영역에 드랍 |
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;
}
}
}
}
}
}
| product | version | desc |
|---|---|---|
| core | 8.0.0.0 | 기능 추가 |
| core | 8.3.0.28 | type:4 기능 추가 |