SMART datagrid v1.4 > Classes > TreeDataLoader
텍스트나 Json 객체, 혹은 Xml을 읽어서 데이터셋의 데이터행들로 추가한다.
type에 따라 data를 처리하는 방식과 options에 설정할 수 있는 속성이 다르다. 아래 표에서 설명한다. options 중 "fillMode", "fillPos"는 "채우기 방식" 테이블을 참조한다.
type | data | options |
---|---|---|
'csv' | text | 'start': 데이터로 읽어들일 시작 행 위치, 기본값은 0. 'count': 읽어들일 행의 개수. 0이하면 start부터 모든 행. 기본값은 -1. 'delimiter': 필드 구분자. 기본값은 ','. 'quoted': true면, '"'(쌍따옴표)나 '''(따옴표)로 감싸인 경우 양 끝을 제거하고 읽어들인다. 'currency': true면, NUMBER 필드인 경우, 숫자, '.', '-', '+'을 제외한 문자들을 제거하고 읽어들인다. 'filter': 로드 시 적용할 filter 수식. 이 수식을 통과한 행들만 읽어들인다. 수식에 사용할 수 있는 변수는 아래 Filter 변수들 참조. 예) 'values['product_id'] like 'n%'' => product_id가 'n'으로 시작하는 줄만 읽어들인다. 'parentId': fillMode가 'set'이 아닐 때, 추가할 행들의 부모 행 rowId. 지정하지 않으면 최상위 행으로 추가. 'treeField': 트리 계층 판단 시 사용할 값이 들어 있는 위치. 'needSorting': true면 트리를 구성하기 전에 treeField를 기준으로 전체 정렬한다. |
'json' | text | json | text인 경우 먼저 JSON.parse()로 객체화한다. 'rows': data 중에서 행으로 읽어들일 데이터셋의 위치. 점(.)으로 분리된 경로로 지정한다. 'parentId': 위 csv 항목과 동일. 아래 Json Path 테이블 참조. 지정하지 않으면 data를 json 배열로 간주한다. 'filter': 위 csv 항목과 동일. |
'xml' | text | DOM | text인 경우 먼저 DOMParser나 ActiveXObject를 이용해서 XMLDocument 객체로 파싱한다. 'parentId': 위 csv 항목과 동일. 'rows': data 중에서 읽어들일 데이터셋의 위치. 점(.)으로 분리된 경로로 지정한다. 아래 Xml Path 테이블 참조. 지정하지 않으면 data를 json 배열로 간주한다. 'filter': 위 csv 항목과 동일. |
fillMode | 설명 |
---|---|
'set' | 기존 행들 제거후 채운다. |
'append' | parentId로 지정한 행의 마지막 자식행 다음에 추가한다. |
'insert' | parentId로 지정한 행의 fillPos 위치의 자식행 자리에 삽입 추가한다. |
path | 설명 |
---|---|
'' | 지정하지 않거나 빈 문자열이면 원본 데이터를 배열로 읽어들인다. |
'row' | 원본 데이터의 'row' 속성을 배열로 읽어들인다.. |
'prop.row' | 원본 데이터의 'prop' 속성의 'row' 속성을 배열로 읽어들인다. |
'prop[1].row' | 원본 데이터의 'prop' 속성이 배열이고, 그 두 번째 객체의 'row' 속성을 배열로 읽어들인다. |
'$[0].row' | 원본 데이터가 배열이고 그 첫 번째 객체의 'row' 속성을 배열로 읽어들인다. |
path | 설명 |
---|---|
'' | 지정하지 않거나 빈 문자열이면 데이터행들로 읽어들일 수 없다. 지정하지 않으면 이름이 'row'인 element들을 가져온다. |
'row' | 최상위 element들 중 이름이 'row'인 것들을 행으로 읽어들인다. |
'prop.row' | 이름이 'prop'인 최상위 element들 중 첫 번째 element의 자식 element들 중 이름이 'row'인 것들을 행으로 읽어들인다. 'prop[0].row'로 지정한 것과 동일하다. |
'prop[1].row' | 이름이 'prop'인 최상위 element들 중 두 번째 element의 자식 element들 중 이름이 'row'인 것들을 행으로 읽어들인다. |
'$[0].row' | 원본 데이터가 배열이고 그 첫 번째 객체의 'row' 속성을 배열로 읽어들인다. |
변수명 | 설명 |
---|---|
'no' | 현재 읽어들이는 중인 원본 행의 위치. start 값이 더해진다. |
'row' | 현재 추가나 수정인 데이터셋 행 번호. |
'values' | 원본 행의 필드값. 'values['product_id']'와 같이 사용한다. |
$('#load').click(function () {
$.getJSON('data/data.json', null, function (data) {
new DataLudi.DataLoader(dataset).load('json', data, {
fillMode: "append"
});
// 혹은, 전역함수를 이용한다.
DataLudi.loadJsonData(dataset, data, {
fillMode: "update",
fillPos: 10,
});
});
});