SMART datagrid v.1 > 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'的elements。 |
'row' | 从顶级elements中,将名称为'row'的读取为行。 |
'prop.row' | 从名称为'prop'的顶级elements中的第一个element的子element中,将名称为'row'的读取为行。 同指定为'prop[0].row'。 |
'prop[1].row' | 从名称为'prop'的顶级elements中的第二个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,
});
});
});