SMART datagrid v.1 > Classes > TreeDataSet
既存の行達をすべて削除して、パラメーターrowsで渡した値たちをデータ行達として追加する。
rowsの各行はフィールド順に値がセーブされたアレイか、 フィールドの名前をプロパティーとするjson客体であり得る。
ツリーを構成する時、rowsの一番目の行から順番にデータ行で変換、追加する。 この時、treeFieldで指定した位置の値がツリー階層を決める値となる。 つまり、現在変換中のtreeFieldフィールドの値が以前の行の値で始まれば以前の行の子行になる。
useTreeFieldをtrueで指定しなければtreeFieldで指定した位置の値たちはデータセットに追加されない。 setFieldsの時treeFieldの位置はないものとみなしてフィールド達を追加しなければならない。 もし、フィールドの値で使いたいのであればuseTreeFieldをtrueにして、 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);