DataProviderBase
LocalDataProvider 와 LocalTreeDataProvider 의 기반 클래스
상세 설명
DataProviderBase 의 모든 속성과 method 는 이를 상속한 하위 클래스들에서만 호출할 수 있다.
[하위 클래스]
프로퍼티 정보
데이터에서 Boolean으로 Parsing 하기 위한 포맷
기본값
null
(기본 포맷 이용)
예제 코드
ds.booleanFormat = 'No: Yeah';
편집 상태일 때 다른 행에 대한 변경 함수(setValue()
등) 호출 시 이전 편집 자동 커밋 여부
기본값
false
예제 코드
ds.commitBeforeDataEdit = true;
text형식의 날짜 데이터를 datetime 값으로 Parsing하기위한 포맷
기본값
null
(기본 포맷 이용)
예제 코드
ds.datetimeFormat = 'yyyy-MM-dd';
행 삭제 시 실제로 삭제하지 않고 RowState 만 변경할지의 여부
기본값
false
예제 코드
ds.softDeleting = false;
복원시 undefined
, null
, 빈 문자열을 다른 값으로 인식할지의 여부
기본값
false
예제 코드
ds.strictRestore = true;
json 형태의 data를 dataProvider에 입력할때 각 행별로 호출되는 콜백
상세 설명
기본값
undefined
메서드 정보
필드를 추가로 생성한다.
매개변수
- field: DataFieldInput
생성할 데이터 필드의 정보값, 문자열일 경우 fieldName으로 설정
- resetFields: boolean
데이터 컬럼에 binding된 필드 정보 갱신여부
- calculateData: boolean
calculated 필드를 다시 계산할지의 여부
반환값
타입: DataField상세 설명
DataField 객체를 생성하여 기존 필드셋에 추가한다.
예제 코드
// string
ds.addField('fieldnName');
// model
let fields = ds.getFields();
ds2.addField(fields);
// config
ds.addField({
fieldName: 'OrderID',
dataType: 'text',
});
가이드
일괄 갱신의 시작점을 지정한다.
상세 설명
DataProvider에서 변경 작업이 발생하면 이를 View에 이벤트를 전달하여 처리하는데 일괄처리를 할때는 이벤트가 빈번히 발생하여 성능이 저하 될 수 있다. beginUpdate()를 호출하면 endUpdate() 가 호출 되기전까지 이벤트가 발생하지 않고 endUpdate()가 호출될 때 일괄 발생한다. beginUpdate ~ endUpdate는 중첩될 수 있는데 반드시 쌍으로 호출되어야 하고 마지막 쌍의 endUpdate가 호출될때 이벤트가 View에 전달된다.
예제 코드
dataProvider.beginUpdate();
try {
for (var i = 0; i < 10; i++) {
var values = gridView.getValues(i);
dataProvider.addRow(values);
}
} finally {
dataProvider.endUpdate();
}
행 상태 기록 여부를 지정한다.
매개변수
- value: boolean
행 상태 기록 여부
상세 설명
행 추가/수정/삭제 상태가 변경될 때 상태를 기록할지를 결정한다. 기록 되지 않으면 softDeleting 이 true
여도 무시하고 삭제 된다.
예제 코드
let checkState = ds.checkRowStates(true);
모든 행의 상태를 제거한다.
매개변수
- deleteRows: boolean
행 상태가 삭제인 행을 실제로 삭제할지의 여부,
true
이면 데이터 셋에서 제거되고false
이면 행 상태를 리셋하고 데이터를 보존한다. - rowEvents: boolean
상태가 제거된 행에 대해 onRowStateChanged 등의 상태변경 콜백을 발생시킬지의 여부
상세 설명
모든 데이터 행의 상태를 RowState.NONE 으로 초기화한다.
예제 코드
ds.clearRowState(true);
DataProvider 객체를 메모리에서 해제한다.
반환값
타입: any상세 설명
DataProvider내부에서 사용된 객체와 데이터등을 제거하고 가비지 콜렉팅이 되도록 한다.
예제 코드
ds.destroy();
일괄 갱신의 완료점을 지정한다.
매개변수
- refresh: boolean
상세 설명
DataProvider에서 변경 작업이 발생하면 이를 View에 이벤트를 전달하여 처리하는데 일괄처리를 할때는 이벤트가 빈번히 발생하여 성능이 저하 될 수 있다. beginUpdate() 를 호출하면 endUpdate()가 호출될 되기전까지 이벤트를 발생하지 않고 endUpdate()가 호출될대 일괄 발생한다. beginUpdate ~ endUpdate는 중첩될 수 있는데 반드시 쌍으로 호출되어야 하고 마지막 쌍의 endUpdate가 호출될때 이벤트가 View에 전달된다.
예제 코드
dataProvider.beginUpdate();
try {
for (var i = 0; i < 10; i++) {
var values = gridView.getValues(i);
dataProvider.addRow(values);
}
} finally {
dataProvider.endUpdate();
}
데이터 셋을 CSV파일로 내보낸다.
매개변수
- options: DataExportOptions
내보내기 설정
상세 설명
options의 설정에 따라 데이터 셋에 저장된 데이터를 CSV파일로 내보낸다.
이는 데이터 수준에서의 내보내기이므로 View 에서 설정하는 상태와는 무관하게 진행된다.
예제 코드
ds.exportToCsv();
상태값을 갖는 모든 행의 인덱스를 반환한다.
상세 설명
RowState.NONE 이 아닌 행들의 번호를 상태별로 배열로 만들어 Object 형태로 반환한다.
예제 코드
let rows = ds.getAllStateRows();
필드의 중복되지 않은 값들을 반환한다.
매개변수
- field: string | number
필드 명 또는 필드 인덱스
- maxCount: number
최대 건수, 정렬한 상태에서 위에부터 건수만큼 잘라서 반환한다. 기본값:
-1
- sortDir: SortDirection
정렬 방법, 기본값: SortDirection.ASCENDING
반환값
타입: any[]상세 설명
데이터 셋에서 지정된 필드에 해당하는 값들을 중복을 배제하여 정렬상태로 반환한다,
예제 코드
ds.getDistinctValues('field1');
현재 구성된 필드셋의 갯수를 반환한다.
반환값
타입: number예제 코드
let fCount = ds.getFieldCount();
필드명에 해당하는 인덱스를 반환한다.
매개변수
- fieldName: string
필드명, 대소문자를 구분하지 않는다.
반환값
타입: number필드셋에서 fieldName에 해당하는 필드의 인덱스를 반환한다.
예제 코드
let index = ds.getFieldIndex('fieldName');
특정 인덱스의 필드의 이름을 반환한다.
매개변수
- fieldIndex: number
필드 인덱스
반환값
타입: string상세 설명
필드셋에서 fieldIndex에 위치된 필드의 fieldName속성을 반환한다.
fieldName은 내부적으로 대문자로 저장되므로 대문자 문자열로 출력된다.
설정시의 fieldName으로 가져오려면 getOrgFieldName() 을 사용한다.
예제 코드
let fieldName = ds.getFieldName(3);
필드들의 이름을 반환한다.
반환값
타입: string[]상세 설명
필드셋에서 필드의 fieldName 속성들을 배열로 반환한다.
fieldName은 내부적으로 대문자로 저장되므로 대문자 문자열로 출력된다.
설정시의 fieldName으로 가져오려면 getOrgFieldNames() 를 사용한다.
예제 코드
let fieldNames = ds.getFieldNames();
설정 정보를 반환한다.
반환값
타입: DataOptions상세 설명
설정정보를 DataOptions 형태로 반환한다.
예제 코드
let options = ds.getOptions();
options.undoable = true;
ds.setOptions(options);
특정 인덱스의 필드의 원래 이름을 반환한다.
매개변수
- fieldIndex: number
필드의 인덱스
반환값
타입: string필드셋에서 fieldIndex에 위치된 필드의 설정 당시의 fieldName속성을 반환한다.
예제 코드
let fieldName = ds.getOrgFieldName(3);
필드들의 원래의 이름을 반환한다.
반환값
타입: string[]필드셋에서 필드 설정당시의 fieldName 속성들을 반환한다.
예제 코드
let orgFieldNames = ds.getOrgFieldNames();
지정한 행의 상태를 반환한다.
매개변수
- row: number
데이터 셋의 행 고유 번호
예제 코드
let rowState = ds.getRowState(4);
상태별 데이터 행 개수를 반환한다.
매개변수
반환값
타입: number상태에 해당하는 데이터 행의 건수, RowState.NONE 인 경우는 제외한다.
상세 설명
지정한 상태 배열 또는 문자열에 따라 포함된 상태별 행 건수를 반환한다.
'*'
, 'all'
입력 시 모두 반환한다.
예제 코드
var allStateCount = dataProvider.getRowStateCount('all');
var updateCount = dataProvider.getRowStateCount(RealGrid.RowState.UPDATED);
모든 복구시점들을 반환한다.
반환값
타입: number[]상세 설명
저장된 모든 복구시점들의 인덱스를 배열로 반환한다.
예제 코드
ds.getSavePoints([0, 1, 2]);
지정한 행들의 변경된 셀정보를 반환한다
매개변수
- rows: number[]
변경된 셀의 정보를 가져올 행의 배열,
null
일 경우 상태가 RowState.UPDATED인 전체 행의 정보를 반환한다.
반환값
타입: UpdatedRow[]상세 설명
restoreMode속성이 RestoreMode.EXPLICIT 또는 AUTO일 때, 지정된 행들 각각의 값이 변경된 셀의 정보를 반환한다.
예제 코드
let cells = ds.getUpdatedCells([1]);
// 변환 데이터 예)
[
{
__rowId: 1,
updatedCells: [
{
fieldName: 'OrderID',
oldValue: '1002',
newValue: '1003',
},
{
fieldName: 'OrderCount',
oldValue: 20,
newValue: 30
}
]
}
]
행의 값들을 반환한다.
매개변수
- row: number
데이터 셋의 행 고유번호
상세 설명
해당 데이터 행의 값들을 배열로 반환한다.
예제 코드
let val = ds.getValeus(5);
행에 값이 채워져씼는지 여부를 반환한다.
매개변수
- row: number
데이터셋의 행 고유번호
반환값
타입: boolean값이 있으면 true
, 데이터없이 추가된 빈 행이면 false
상세 설명
지정한 데이터행이 값이 채워져있는지 빈 행인지 여부를 반환한다.
예제 코드
let has = ds.hasData(5);
필드를 제거한다.
매개변수
- field: DataFieldInput
제거할 필드의 이름 또는 DataField 객체
- resetFields: boolean
데이터 컬럼에 binding된 필드 정보 갱신여부
지정한 행들의 값과 상태를 복원한다.
매개변수
- rows: number | number[]
복원하려는 행의 인덱스 또는 인덱스 배열
상세 설명
restoreMode속성이 RestoreMode.EXPLICIT 또는 AUTO일 때, 지정된 행들의 변경내용과 상태를 원래대로 복원한다.
예제 코드
ds.restoreUpdatedRows([2, 4]);
지정한 행들의 상태를 복원한다.
매개변수
- rows: number[]
상태를 원복하려는 데이터행 인덱스의 배열
상세 설명
restoreMode속성이 RestoreMode.EXPLICIT일 때 값이 변경되었다가 원복된 행의 상태를 복원한다. 예를들어 상태가 RowState.NONE 인 행을 편집하여 RowState.UPDATED 상태가 되었을때 행의 값이 원래대로 돌아간후 호출하면 상태가 RowState.NONE으로 원복된다. restoreMode가 AUTO일 땐 행 값에 따라 자동으로 복원된다.
예제 코드
ds.restoreUpdatedStates([2, 4]);
데이터 셋을 복원한다
매개변수
- savePoint: number
복구 포인트의 인덱스, 기본값: 0
상세 설명
데이터 셋의 데이터및 상태를 해당 포인트 시점으로 되돌린다.
예제 코드
ds.rollback();
가이드
데이터 셋의 복구 시점을 기록한다.
매개변수
- saveStates: boolean
상태 기록 여부
반환값
타입: number상세 설명
데이터 셋의 데이터및 상태를 복제하여 저장하고 포인트의 인덱스를 반환한다. 이 후 rollback() 함수를 통해 특정 포인트로 돌아갈 수 있다.
예제 코드
ds.savePoint([2, 4]);
가이드
특정 필드의 정렬 함수를 설정한다.
매개변수
- field: string | number
정렬방식을 지정할 필드의 이름 또는 인덱스
- comparer: CompareFunction
사용자 정의 정렬 함수
상세 설명
해당 필드의 정렬이 발생시 기본적으로 사용는 정렬 함수가 아닌 사용자 정의 정렬 함수를 설정한다. 정렬 함수는 자바스크립트 Array.prototype.sort()의 compareFunction과 동일하다.
예제 코드
dataProvider.setDataComparer('OrderID', function(field, row1, row2) {
var val1 = dataProvider.getValue(row1, field);
var val2 = dataProvider.getValue(row2, field);
return val1 == val2 ? 0 : val1 > val2 ? 1 : -1;
}
필드셋을 설정한다
매개변수
- fields: DataFieldInput[]
생성할 DataField의 정보 배열
상세 설명
기존 필드 정보와 binding된 데이터를 삭제하고 전달받은 필드 정보 배열로 부터 새로운 필드셋을 구성한다. fields의 갯수만큼 DataField 객체를 생성, 요소가 문자열일경우 fieldName으로, DataField 인 경우 복제, DataFieldObject 인 경우 속성값 기준으로 생성한다.
예제 코드
// string
ds.setFields('fieldnName');
// model
let fields = ds.getFields();
ds.setFields(fields);
// config
ds.setFields({
fieldName: 'OrderID',
dataType: 'text',
});
가이드
설정정보를 변경한다.
매개변수
- options: DataOptions
DataOptions 설정정보 객체
상세 설명
options 에 기입하지 않은 설정은 원래의 값을 유지한다.
예제 코드
let options = {
insertable: true,
updatable: true,
softDeleting: false
};
ds.setOptions(options);
특정 행의 상태를 변경한다.
매개변수
- row: number
상태를 변경할 데이터 행 인덱스
- state: RowState
변경할 상태, 기본값: RowState.NONE
- force: boolean
DataProvider의 상태 관리에 관계없이 적용 여부, 기본값:
false
예제 코드
ds.setRowState(5, 'updated');
복수의 행의 상태를 일괄 변경한다.
매개변수
- rows: number[]
상태를 변경할 데이터 행 인덱스의 배열
- state: RowState
변경할 상태
- force: boolean
DataProvider의 상태 관리에 관계없이 적용 여부
- rowEvents: boolean
true
이면 각각의 데이터 행의 상태 변경 이벤트 발생,false
면 하나의 이벤트로 묶어서 발생
상세 설명
배열로 전달된 데이터 행들의 상태를 일괄적으로 변경한다.
예제 코드
ds.setRowStates([1,3,5], "updated");