SMART datagrid v1.4 > Examples

[ grids ver.1.3.0]   Back  Forward

Undo & Redo  Example

일반적인 문서 편집 어플리케션과 마찬가지로, SMART datagrid는 사용자 입력이나 데이터셋 수정을 단계별로 되돌리거나(Undo), 다시 실행(Redo)할 수 있는 기능을 제공한다. 

GridBase.undoableDataSet.undoable을 모두 true로 지정하면, 실행 시간 사용자는 "Ctrl+Z", "Ctrl+Y" 키를 입력해서 수정 이력을 되돌리거나 다시 진행할 수 있고, Script에서는 GridBase.undo, redo를 호출하면 된다. 


(ctrl+Z, cmd+Z)    (ctrl+Y, cmd+Y

Grid - 1
rows
이 값을 변경하면 기존 DataSet Undo 목록이 지워진다.
이 값을 변경하면 기존 Grid Undo 목록이 지워진다.
이 속성을 true로 지정하면 선택영역의 값들을 Delete 키로 지운다.
이 속성을 true로 지정하면 수정 행에서 셀 단위로 커밋한다.
이 속성을 true로 지정하면 추가 행에서 셀 단위로 커밋한다.

데이터셋 Undo 스택을 지운다.
그리드 Undo 스택을 지운다.

데이터 수정은 그리드데이터셋 수준에서 발생할 수 있는데, 그리드에서는 사용자가 행을 수정, 추가할 때 발생하고, 데이터셋 수정은 그리드에서 편집 완료된 데이터가 데이터셋에 전달되거나, 데이터셋 Api 함수를 직접 호출할 때 발생한다. 

그리드 행 편집 중 Undo/Redo를 가능하게 하려면 GridBase.undoabletrue로 지정한다. 또, 데이터셋 수준의 Undo/Redo를 가능하게 하려면 DataSet.undoabletrue로 지정한다. 대개의 경우 사용자에게 Undo/Redo UI를 제공할 때 두 속성을 모두 true를 지정하면 된다. 

Code -1
    dataset.setUndoable(true);
    grid.setUndoable(true);

현재 Undo/Redo 가능 여부는 GridBase.onUndoStateChanged 이벤트로 알 수 있다. 

Code -2
    grdMain.onUndoStateChanged = function (grid, canUndo, canRedo) {
        document.getElementById('btnUndo').disabled = !canUndo;  
        document.getElementById('btnRedo').disabled = !canRedo;  
    };

소스보기 JSP 

See Also
Undoing 개요
GridBase.undoable
DataSet.undoable
GridBase.clearUndo
GridBase.onUndoStateChanged
EditOptions.erasable
EditOptions.updateByCell
EditOptions.insertByCell
Examples
셀 편집
Edit Keys