SMART datagrid v.1 > Classes > DataLoader
读取文本或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': 当fillMode不是'update'时,将会被适用的filter表达式。只读取通过这个表达式的行。 有关可以被用于表达式的变量,请参考下列Filter变量。 例) 只读取'values['product_id'] like 'n%'' => product_id以'n'开头的行。 |
'json' | text | json | 如果为text,就会先通过JSON.parse(),进行客观化。 'start': 读取为数据的起始行位置。默认值是0。 'count': 将会读取的行的数量。如果小于0,就会是从start到所有行。默认值是-1。 'rows': 将会从data中,读取为行的数据组的位置。指定为通过逗号而区分的路径。 请参考下列Json Path表格。如果没有指定,就会将data视为是JSON数组。 'filter': 与上述CSV项目相同。 |
'xml' | text | DOM | 如果为text,就会先通过使用DOMParser或ActiveXObject,分析为XMLDocument对象。 'start': 读取为数据的起始行位置。默认值是0。 'count': 将会读取的行的数量。如果小于0,就会是从start到所有行。默认值是-1。 'rows': 将会从data中,读取的数据组的位置。指定为通过逗号而区分的路径。 请参考下列Xml Path表格。如果没有指定,就会将data视为是JSON数组。 'filter': 与上述CSV项目相同。 |
fillMode | 说明 |
---|---|
'set' | 先清除现有行之后,再进行填充。 |
'append' | 添加到最后一行之后。 |
'insert' | 插入在fillPos位置。 |
'update' | 从fillPos位置开始覆盖。 |
path | 说明 |
---|---|
'' | 如果没有指定或为空字符串,就会将源数据读取为数组。 |
'row' | 将源数据的'row'属性读取为数组。 |
'prop.row' | 将源数据的'prop'属性的'row'属性读取为数组。 |
'prop[1].row' | 源数据的'prop'属性为数组,并且将其第二个对象的'row'属性读取为数组。 |
'$[0].row' | 源数据为数组,并且将其第一个对象的'row'属性读取为数组。 |
path | 说明 |
---|---|
'' | 如果没有指定或为空字符串,就无法读取为数据行。如果没有指定,就会获取名称为'row'的元素。 |
'row' | 只从顶级元素中的、名称为'row'的,读取为行。 |
'prop.row' | 只从名称为'prop'的顶级元素中的、第一个元素的子元素中的、名称为'row'的,读取为行。 与通过'prop[0].row'而指定的方式相同。 |
'prop[1].row' | 只从名称为'prop'的顶级元素中的、第二个元素的子元素中的、名称为'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"
});
// 或,使用全函数(total function)。
DataLudi.loadJsonData(dataset, data, {
fillMode: "update",
fillPos: 10,
});
});
});