SMART datagrid v1.4 > Classes > TreeDataSet
기존행들을 모두 제거하고, 매개변수 rows로 전달한 값들을 데이터행들로 추가한다.
rows의 각 행은 필드 순서대로 값이 저장된 배열이거나, 필드 이름들을 속성으로 하는 json 객체일 수 있다.
트리를 구성할 때, rows의 첫 행부터 순서대로 데이터행으로 변환 추가한다. 이 때, treeField로 지정한 위치의 값이 트리 계층을 정하는 값이 된다. 즉 현재 변환 중인 행의 treeField 필드 값이 이전 행의 값으로 시작하는 값이면 이 전 행의 자식행이 된다.
useTreeField를 true로 지정하지 않으면 treeField로 지정한 위치의 값들은 데이터셋에 추가되지 않는다. DataSet.setFields 시 treeField 위치는 없는 것으로 여기고 필드들을 추가해야 한다. 만일, 필드 값으로 사용하고 싶다면 useTreeField를 true로 하고, DataSet.setFields 시 treeField 위치에 필드를 추가해야 한다.
만일 rows가 treeField에 맞게 정렬된 상태가 아니라면, sortRows를 true로 지정해서 먼저 정렬하도록 해야 한다.
// treeField: 0, useTreeField: false
var rows = [
['0', 'name1', 'value'1],
['0.1', 'name11', 'value'11],
['0.2', 'name12', 'value'12],
];
// rows 각 배열의 두 번째 항목부터 값으로 사용한다.
ds.setFields([{
fieldName: 'name'
}, {
fieldName: 'value'
}]);
ds.setRows(rows, 0);
// treeField: 0, useTreeField: true
var rows = [
['0', 'name1', 'value'1],
['0.1', 'name11', 'value'11],
['0.2', 'name12', 'value'12],
];
// tree 필드 추가
ds.setFields([{
fieldName: 'tree'
}, {
fieldName: 'name'
}, {
fieldName: 'value'
}]);
ds.setRows(rows, 0, true);