SMART datagrid v1.4 > Concepts

[ grids ver.1.3.3]   Back  Forward

Concepts.Editable and ReadOnly  준비중...

실행 시간에 사용자가 데이터셀의 값을 직접 수정할 수 있는 방법은 셀 편집기 및 편집 가능한 셀 렌더러 이용, 클립보드 붙여넣기, 선택 영역 지우기 등이 있다. 특히 셀 편집기의 경우 값을 수정하지 않고 단지 편집기를 표시해서 감춰진 부분을 살피는 등의 용도로 사용할 수도 있다. 이 때, 그리드 UI 특성 상 데이터 컬럼 별, 데이터 행 별 혹은 데이터 셀 수준에서 사용자의 수정 가능 여부, 편집기 표시 여부등을 상세하게 관리할 필요가 생기는 데, Dataludi 그리드는 특정 데이터셀의 편집기 표시 여부를 editable, 셀 값을 수정할 수 있는 지의 여부를 readOnly 특성으로 관리할 수 있도록 여러 지점에서 속성이나 콜백 함수 및 이벤트 등을 제공한다. 

1. editable

편집하려는 셀에 편집기를 표시하기 전에 해당 셀의 editable 상태를 확인한다. 아래의 여러 경로를 순서대로 점검한 후 false가 되면 편집기가 표시되지 않는다. 

Table-1  readOnly 관련 속성들
속성기본값설명
GridBase.readModefalsetrue면 다른 설정들과 상관없이 모든 셀에서 편집하거나 수정할 수 없다. 즉 모든 셀에서 not editable이 된다.
EditOptions.editabletruefalse로 지정되면 다른 설정들과 상관없이 모든 셀은 not editable이 된다.
DataColumn.editableCallbacknull이 콜백 함수에서 명시적으로 Boolean false나 true를 리턴하면 그 값으로 editable이 결정되고 나머지 결정 절차는 취소된다. 값을 리턴하지 않으면 다음 결정 단계가 실행된다.
EditOptions.editableCallbacknull위 컬럼 콜백과 동일한 방식으로 실행된다.
DataColumn.editabletruefalse로 지정되면 이 컬럼에 포함된 셀들은 not editable이 된다.
EditOptions.fixedColumnEditabletruefalse로 지정되면 고정 컬럼들에 포함된 셀들은 not editable이 된다.
EditOptions.fixedRowEditabletruefalse로 지정되면 고정 행들에 포함된 셀들은 not editable이 된다.
EditOptions.deletedRowEditablefalsetrue로 지정되면 삭제 상태의 행들에 포함된 셀들이 editable이 된다.
2. readOnly

편집하려는 셀에서 편집기 및 렌더러를 이용하거나 붙여넣기 혹은 선택 영역 지우기 등으로 값을 수정하기 전에 readOnly 상태를 확인한다. 아래의 여러 경로를 순서대로 점검한 후 true가 되면 값을 수정할 수 없다. 

Table-2  readOny 결정 순서
속성기본값설명
GridBase.readModefalsetrue면 다른 설정들과 상관없이 모든 셀에서 편집하거나 수정할 수 없다. 즉 모든 셀에서 readOnly가 된다.
EditOptions.readOnlyfalsetrue로 지정되면 다른 설정들과 상관 없이 모든 셀은 readOnly가 된다. 또, 행 수정, 추가, 삭제도 할 수 업다.
DataField.updatablefalse편집셀에 연결된 데이터필드가 수정할 수 없는 필드이거나 updatablefalse면 readOnly가 된다.
DataColumn.readOnlyCallbacknull이 콜백 함수에서 명시적으로 Boolean false나 true를 리턴하면 그 값으로 readOnly가 결정되고 나머지 결정 절차는 취소된다. 값을 리턴하지 않으면 다음 결정 단계가 실행된다.
EditOptions.readOnlyCallbacknull위 컬럼 콜백과 동일한 방식으로 실행된다.
DataColumn.readOnlyfalsetrue로 지정되면 이 컬럼에 포함된 셀들은 readOnly가 된다.
EditOptions.fixedColumnReadOnlyfalsetrue로 지정되면 고정 컬럼들에 포함된 셀들은 readOnly가 된다.
EditOptions.fixedRowReadOnlyfalsetrue로 지정되면 고정 행들에 포함된 셀들은 readOnly가 된다.
EditOptions.deletedRowReadOnlytruetrue로 지정되면 삭제 상태의 행들에 포함된 셀들은 readOnly가 된다.
See Also
Cell Editing Overview
Examples
ReadOnly & Editable