SMART datagrid v1.4 > Examples
사용자는 Ctrl+Del 키로 현재 선택된 행들을 삭제할 수 있다. 삭제 요청된 행들의 목록이 DataSet에 전달되고, 데이터셋이 실제로 목록의 그리드행들에 연결된 각 데이터행들을 삭제하면 그 결과가 다시 그리드에 반영된다.
사용자 삭제가 가능하려면 우선 GridBase.editOptions의 deletable을 true로 설정해야 한다(기본값은 false). 또, EditOptions.confirmWhenDelete가 true(기본값)이면, 실제 삭제 절차에 들어가기 전에 EditOptions.deleteMessage로 지정한 삭제 여부 확인 대화상자가 표시된다.
행 수정이나 행 추가와 유사하게, 데이터셋에서 데이터행들이 삭제된 후 GridDataSet.onRowsDeleted 이벤트가 발생하고, 삭제 직전에 GridDataSet.onRowsDeleting 이벤트가 발생한다. 이 이벤트 내에서 명시적으로 false를 리턴하면 삭제되지 않는다.
또, 그리드가 삭제 요청을 데이터셋에 전달하기 전에 먼저 onDeleting이벤트를 발생시키는데, 역시 이 이벤트 핸들러 내에서 명시적으로 false를 리턴하면 행 삭제가 취소된다.
grdMain.onDeleting = function (grid, rowIndices) {
if ($('#chkEventDeletable').is(':checked')) {
return false;
}
};
사용자가 ctrl+del 키로 선택된 행들을 삭제하려 할 때, 그 행들을 데이터셋에서 실제로 제거하는 대신, 행의 상태만 삭제된 상태로 변경할 수 있다. DataSet.softDelete 속성을 true로 지정하고 데이터행들을 삭제하면, DataRowState.CREATED인 행들은 CREATE_AND_DELETED로, 나머지 행들은 DELETED로 상태가 변경된다.
이 후에 삭제 상태의 행들을 한꺼번에 삭제하도록 서버에 요청할 수 있다. 또, 삭제 상태 행들을 복원시킬 수도 있다.