kero
Version:
<img src="http://tinper.org/assets/images/kero.png" width="120" style="max-width:100%;"/>
1,089 lines (822 loc) • 35.7 kB
Markdown
<a name="DataTable"></a>
## DataTable : <code>object</code>
前端数据模型对象
* [DataTable](#DataTable) : <code>object</code>
* _instance_
* [.id](#DataTable+id) : <code>string</code>
* [.strict](#DataTable+strict) : <code>boolean</code>
* [.meta](#DataTable+meta) : <code>object</code>
* [.enable](#DataTable+enable) : <code>boolean</code>
* [.pageSize](#DataTable+pageSize) : <code>number</code>
* [.pageIndex](#DataTable+pageIndex) : <code>number</code>
* [.totalPages](#DataTable+totalPages) : <code>number</code>
* [.pageCache](#DataTable+pageCache) : <code>boolean</code>
* [.params](#DataTable+params) : <code>object</code>
* [.master](#DataTable+master) : <code>string</code>
* [.dateNoConvert](#DataTable+dateNoConvert) : <code>boolean</code>
* _static_
* [.copyRow(index, row)](#DataTable.copyRow)
* [.copyRows(index, rows)](#DataTable.copyRows)
* [.setData(data, options)](#DataTable.setData)
* [.setValue(fieldName, value, [row], [ctx])](#DataTable.setValue)
* [.isEnable([fieldName])](#DataTable.isEnable) ⇒ <code>boolean</code>
* [.setEnable(enable)](#DataTable.setEnable)
* [.getCurrentRow()](#DataTable.getCurrentRow) ⇒ <code>null</code> | <code>u.Row</code>
* [.getCurrentIndex()](#DataTable.getCurrentIndex) ⇒ <code>number</code>
* [.getData()](#DataTable.getData) ⇒ <code>array</code>
* [.getDataByRule(rule)](#DataTable.getDataByRule) ⇒ <code>array</code>
* [.getRow(index)](#DataTable.getRow) ⇒ <code>object</code>
* [.getRowByRowId(rowid)](#DataTable.getRowByRowId) ⇒ <code>Row</code>
* [.getRowIndex(需要获取索引的row对象)](#DataTable.getRowIndex) ⇒ <code>\*</code>
* [.getRowsByField(field, value)](#DataTable.getRowsByField) ⇒ <code>array</code>
* [.getRowByField(field, value)](#DataTable.getRowByField) ⇒ <code>u.Row</code>
* [.getAllRows()](#DataTable.getAllRows) ⇒ <code>array</code>
* [.getAllPageRows()](#DataTable.getAllPageRows) ⇒ <code>array</code>
* [.getChangedDatas(withEmptyRow)](#DataTable.getChangedDatas) ⇒ <code>array</code>
* [.getChangedRows()](#DataTable.getChangedRows) ⇒ <code>array</code>
* [.getValue(fieldName, [row])](#DataTable.getValue) ⇒ <code>string</code>
* [.getIndexByRowId(rowId)](#DataTable.getIndexByRowId)
* [.getAllDatas()](#DataTable.getAllDatas) ⇒ <code>array</code>
* [.getRowIdsByIndices(indices)](#DataTable.getRowIdsByIndices) ⇒ <code>array</code>
* [.getFocusRow()](#DataTable.getFocusRow) ⇒ <code>u.Row</code>
* [.getFocusIndex()](#DataTable.getFocusIndex) ⇒ <code>number</code>
* [.getMeta([fieldName], [key])](#DataTable.getMeta) ⇒ <code>object</code>
* [.getRowMeta([fieldName], [key])](#DataTable.getRowMeta) ⇒ <code>object</code>
* [.getParam(key)](#DataTable.getParam) ⇒ <code>\*</code>
* [.getSelectedIndex()](#DataTable.getSelectedIndex) ⇒ <code>number</code>
* [.getSelectedIndices()](#DataTable.getSelectedIndices) ⇒ <code>array</code>
* [.getSelectedDatas([withEmptyRow])](#DataTable.getSelectedDatas) ⇒ <code>array</code>
* [.getSelectedRows()](#DataTable.getSelectedRows) ⇒ <code>array</code>
* [.getSimpleData([options])](#DataTable.getSimpleData) ⇒ <code>array</code>
* [.setMeta(fieldName, key, value)](#DataTable.setMeta)
* [.updateMeta(meta)](#DataTable.updateMeta)
* [.addParam(key, value)](#DataTable.addParam)
* [.addParams(params)](#DataTable.addParams)
* [.refSelectedRows(fieldName)](#DataTable.refSelectedRows)
* [.ref(fieldName)](#DataTable.ref)
* [.refMeta(fieldName, key)](#DataTable.refMeta)
* [.refRowMeta(fieldName, key)](#DataTable.refRowMeta)
* [.refEnable(fieldName)](#DataTable.refEnable)
* [.removeRowByRowId(rowId)](#DataTable.removeRowByRowId)
* [.removeRow(index)](#DataTable.removeRow)
* [.removeAllRows()](#DataTable.removeAllRows)
* [.removeRows(indices)](#DataTable.removeRows)
* [.clear()](#DataTable.clear)
* [.addRow(row)](#DataTable.addRow)
* [.addRows(rows)](#DataTable.addRows)
* [.insertRow(index, row)](#DataTable.insertRow)
* [.insertRows(index, rows)](#DataTable.insertRows)
* [.createEmptyRow()](#DataTable.createEmptyRow) ⇒ <code>u.Row</code>
* [.setAllRowsSelect()](#DataTable.setAllRowsSelect)
* [.setRowSelect(index)](#DataTable.setRowSelect)
* [.setRowsSelect(indices)](#DataTable.setRowsSelect)
* [.addRowSelect(index)](#DataTable.addRowSelect)
* [.addRowsSelect(indices)](#DataTable.addRowsSelect)
* [.setAllRowsUnSelect([options])](#DataTable.setAllRowsUnSelect)
* [.setRowUnSelect(index)](#DataTable.setRowUnSelect)
* [.setRowsUnSelect(indices)](#DataTable.setRowsUnSelect)
* [.toggleAllSelect()](#DataTable.toggleAllSelect)
* [.setRowFocus(index, [quiet], [force])](#DataTable.setRowFocus)
* [.setRowUnFocus()](#DataTable.setRowUnFocus)
* [.setSimpleData(data, [options])](#DataTable.setSimpleData)
* [.addSimpleData(data, status)](#DataTable.addSimpleData)
* [.on(name, [callback], [one])](#DataTable.on) ⇒ <code>[DataTable](#DataTable)</code>
* [.off(name, [callback])](#DataTable.off) ⇒ <code>[DataTable](#DataTable)</code>
* [.one(name, [callback])](#DataTable.one)
* [.trigger(name)](#DataTable.trigger) ⇒ <code>[DataTable](#DataTable)</code>
<a name="DataTable+id"></a>
### dataTable.id : <code>string</code>
DataTable对应的唯一标识
<a name="DataTable+strict"></a>
### dataTable.strict : <code>boolean</code>
在设置数据时是否自动创建对应字段,如果为true则不自动创建,如果为false则自动创建缺失的字段
**Default**: <code>false</code>
<a name="DataTable+meta"></a>
### dataTable.meta : <code>object</code>
DataTable的所有字段属性信息
<a name="DataTable+enable"></a>
### dataTable.enable : <code>boolean</code>
DataTable的是否支持编辑功能
**Default**: <code>true</code>
<a name="DataTable+pageSize"></a>
### dataTable.pageSize : <code>number</code>
DataTable支持翻页功能时每页显示数据条数
**Default**: <code>20</code>
<a name="DataTable+pageIndex"></a>
### dataTable.pageIndex : <code>number</code>
DataTable支持翻页功能时当前页码
**Default**: <code>0</code>
<a name="DataTable+totalPages"></a>
### dataTable.totalPages : <code>number</code>
DataTable支持翻页功能时总页数
**Default**: <code>0</code>
<a name="DataTable+pageCache"></a>
### dataTable.pageCache : <code>boolean</code>
DataTable的是否支持前端缓存,支持前端缓存则前端会存储所有页的数据信息,否则只保存当前页的数据信息。如果使用前端缓存则需要使用框架封装的fire方法来与后台进行交互
**Default**: <code>false</code>
<a name="DataTable+params"></a>
### dataTable.params : <code>object</code>
使用者自定义的属性合集,框架内部不会针对此属性进行特殊处理,仅用于设置及获取
<a name="DataTable+master"></a>
### dataTable.master : <code>string</code>
使用者自定义的属性,框架内部不会针对此属性进行特殊处理,仅用于设置及获取。
<a name="DataTable+dateNoConvert"></a>
### dataTable.dateNoConvert : <code>boolean</code>
通过getSimpleData获取数据时,日期字段是否转化为long型,如果为true时不进行转化,为false时转化为long型
**Default**: <code>false</code>
<a name="DataTable.copyRow"></a>
### DataTable.copyRow(index, row)
在指定index位置插入单条数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 数据行插入之后的位置 |
| row | <code>object</code> | 数据行信息 |
**Example**
```js
var row = {
field1:'value1'
}
datatable.copyRow(1,row)
```
<a name="DataTable.copyRows"></a>
### DataTable.copyRows(index, rows)
在指定index位置插入多条数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 数据行插入之后的位置 |
| rows | <code>array</code> | 存储数据行信息的数组 |
**Example**
```js
var row1 = {
field1:'value1'
}
var row2 = {
field1:'value1'
}
datatable.copyRow(1,[row1,row2])
```
<a name="DataTable.setData"></a>
### DataTable.setData(data, options)
设置数据信息
| 参数 | 类型 | Default | 描述 |
| --- | --- | --- | --- |
| data | <code>object</code> | | 需要设置的数据信息,必须包含rows或者pages属性 |
| [data.rows] | <code>array</code> | | 数据信息中的行信息数组 |
| [data.pages] | <code>array</code> | | 数据信息中的page对象数组 |
| [data.pageIndex] | <code>number</code> | <code>DataTable对象当前的页码</code> | 数据信息中的当前页码 |
| [data.pageSize] | <code>number</code> | <code>DataTable对象当前的每页显示条数</code> | 数据信息中的每页显示条数 |
| [data.totalPages] | <code>number</code> | <code>DataTable对象当前的总页数</code> | 数据信息中的总页数 |
| [data.totalRow] | <code>number</code> | <code>如果存在rows则为rows的长度,否则为DataTable对象当前的总条数</code> | 数据信息中的总条数 |
| [data.select] | <code>number</code> | | 数据信息中的选中行行号 |
| [data.focus] | <code>number</code> | | 数据信息中的focus行行号 |
| options | <code>object</code> | | 设置数据时的配置参数 |
| options.unSelect | <code>boolean</code> | <code>false</code> | 是否默认选中第一行,如果为true则不选中第一行,否则选中第一行 |
**Example**
```js
var data = {
rows:[{
filed1:'value1',
field2:'value2'
},{
filed1:'value11',
field2:'value21'
}],
select:0,
}
var op = {
unSelect:true
}
datatable.setData(data,op)
```
<a name="DataTable.setValue"></a>
### DataTable.setValue(fieldName, value, [row], [ctx])
设置对应行对应字段的值
| 参数 | 类型 | Default | 描述 |
| --- | --- | --- | --- |
| fieldName | <code>string</code> | | 需要设置的字段 |
| value | <code>string</code> | | 需要设置的值 |
| [row] | <code>u.row</code> | <code>当前行</code> | 需要设置的u.row对象, |
| [ctx] | <code>\*</code> | | 自定义属性,在valuechange监听传入对象中可通过ctx获取此处设置 |
**Example**
```js
datatable.setValue('filed1','value1') //设置当前行字段值
var row = datatable.getRow(1)
datatable.setValue('filed1','value1',row) //设置在指定行字段值
datatable.setValue('filed1','value1',row,'ctx') //设置在指定行字段值,同时传入自定义数据
```
<a name="DataTable.isEnable"></a>
### DataTable.isEnable([fieldName]) ⇒ <code>boolean</code>
判断DataTable或指定字段是否可修改
**返回值**: <code>boolean</code> - DataTable/指定字段是否可修改
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| [fieldName] | <code>string</code> | 需要进行判断的字段值 |
**Example**
```js
datatable.isEnable() //获取datatable是否可修改
datatable.isEnable('field1') //获取字段field1是否可修改
```
<a name="DataTable.setEnable"></a>
### DataTable.setEnable(enable)
设置DataTable是否可修改
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| enable | <code>boolean</code> | true表示可修改,否则表示不可修改 |
**Example**
```js
datatable.setEnable(true)
```
<a name="DataTable.getCurrentRow"></a>
### DataTable.getCurrentRow() ⇒ <code>null</code> | <code>u.Row</code>
获取DataTable对象的当前行
**返回值**: <code>null</code> | <code>u.Row</code> - DataTable对象的当前行
**Example**
```js
datatable.getCurrentRow()
```
<a name="DataTable.getCurrentIndex"></a>
### DataTable.getCurrentIndex() ⇒ <code>number</code>
获取DataTable对象的当前行对应的index
**返回值**: <code>number</code> - DataTable对象的当前行对应的index
**Example**
```js
datatable.getCurrentIndex()
```
<a name="DataTable.getData"></a>
### DataTable.getData() ⇒ <code>array</code>
获取DataTable的数据信息
**返回值**: <code>array</code> - 数据信息对应的数组,每项对应一条数据
**Example**
```js
datatable.getData()
```
<a name="DataTable.getDataByRule"></a>
### DataTable.getDataByRule(rule) ⇒ <code>array</code>
按照特定规则获取数据
**返回值**: <code>array</code> - 按照规则获取到的数据信息
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| rule | <code>string</code> | DataTable.SUBMIT.current('current') :当前选中行 DataTable.SUBMIT.focus('focus') :当前focus行 DataTable.SUBMIT.all('all') :所有行 DataTable.SUBMIT.select('select') :当前页选中行 DataTable.SUBMIT.change('change') :发生改变的行 DataTable.SUBMIT.empty('empty') :不获取数据,返回空数组 DataTable.SUBMIT.allSelect('allSelect') :所有页选中行 DataTable.SUBMIT.allPages('allPages') :所有页的数据 |
**Example**
```js
datatable.getDataByRule(‘all’)
```
<a name="DataTable.getRow"></a>
### DataTable.getRow(index) ⇒ <code>object</code>
根据索引获取指定行数据信息
**返回值**: <code>object</code> - 获取到的指定行数据信息
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 需要获取的数据信息的索引 |
**Example**
```js
datatable.getRow(1)
```
<a name="DataTable.getRowByRowId"></a>
### DataTable.getRowByRowId(rowid) ⇒ <code>Row</code>
根据rowid获取Row对象
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| rowid | <code>string</code> | 需要获取的Row对应的rowid |
**Example**
```js
datatable.getRowByRowId('rowid')
```
<a name="DataTable.getRowIndex"></a>
### DataTable.getRowIndex(需要获取索引的row对象) ⇒ <code>\*</code>
获取Row对象对应的索引
| 参数 | 类型 |
| --- | --- |
| 需要获取索引的row对象 | <code>u.Row</code> |
**Example**
```js
var row = datatable.getRow(1)
datatable.getRowIndex(row) // 1
```
<a name="DataTable.getRowsByField"></a>
### DataTable.getRowsByField(field, value) ⇒ <code>array</code>
根据字段及字段值获取所有数据行
**返回值**: <code>array</code> - 根据字段及字段值获取的所有数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| field | <code>string</code> | 需要获取行的对应字段 |
| value | <code>string</code> | 需要获取行的对应字段值 |
**Example**
```js
datatable.getRowsByField('field1','value1')
```
<a name="DataTable.getRowByField"></a>
### DataTable.getRowByField(field, value) ⇒ <code>u.Row</code>
根据字段及字段值获取第一条数据行
**返回值**: <code>u.Row</code> - 根据字段及字段值获取第一条数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| field | <code>string</code> | 需要获取行的对应字段 |
| value | <code>string</code> | 需要获取行的对应字段值 |
**Example**
```js
datatable.getRowByField('field1','value1')
```
<a name="DataTable.getAllRows"></a>
### DataTable.getAllRows() ⇒ <code>array</code>
获取当前页的所有数据行
**返回值**: <code>array</code> - 获取到的数据行
**Example**
```js
datatable.getAllRows()
```
<a name="DataTable.getAllPageRows"></a>
### DataTable.getAllPageRows() ⇒ <code>array</code>
获取所有页的所有数据行
**返回值**: <code>array</code> - 获取到的数据行
**Example**
```js
datatable.getAllPageRows()
```
<a name="DataTable.getChangedDatas"></a>
### DataTable.getChangedDatas(withEmptyRow) ⇒ <code>array</code>
获取发生变化的数据信息
**返回值**: <code>array</code> - 发生变化的数据信息
| 参数 | 类型 | Default | 描述 |
| --- | --- | --- | --- |
| withEmptyRow | <code>boolean</code> | <code>false</code> | 未发生变化的数据是否使用空行代替,true表示以空行代替未发生变化行,false相反 |
**Example**
```js
datatable.getChangedDatas()
```
<a name="DataTable.getChangedRows"></a>
### DataTable.getChangedRows() ⇒ <code>array</code>
获取发生改变的Row对象
**返回值**: <code>array</code> - 发生改变的Row对象
**Example**
```js
datatable.getChangedRows()
```
<a name="DataTable.getValue"></a>
### DataTable.getValue(fieldName, [row]) ⇒ <code>string</code>
根据字段获取对应Row对象的字段值
**返回值**: <code>string</code> - 获取到的字段值
| 参数 | 类型 | Default | 描述 |
| --- | --- | --- | --- |
| fieldName | <code>string</code> | | 需要获取的值对应的字段 |
| [row] | <code>u.Row</code> | <code>默认为当前行</code> | 对应的数据行 |
**Example**
```js
datatable.getValue('field1')
var row = datatable.getRow(1)
datatable.getValue('field1',row)
```
<a name="DataTable.getIndexByRowId"></a>
### DataTable.getIndexByRowId(rowId)
根据行号获取行索引
| 参数 | 类型 |
| --- | --- |
| rowId | <code>String</code> |
**Example**
```js
datatable.getIndexByRowId('rowid')
```
<a name="DataTable.getAllDatas"></a>
### DataTable.getAllDatas() ⇒ <code>array</code>
获取所有行数据信息
**返回值**: <code>array</code> - 所有行数据信息
**Example**
```js
datatable.getAllDatas()
```
<a name="DataTable.getRowIdsByIndices"></a>
### DataTable.getRowIdsByIndices(indices) ⇒ <code>array</code>
根据索引获取rowid
**返回值**: <code>array</code> - 获取到的rowid
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| indices | <code>array</code> | 需要获取rowid的索引值 |
**Example**
```js
datatable.getRowIdsByIndices([1,2,5])
```
<a name="DataTable.getFocusRow"></a>
### DataTable.getFocusRow() ⇒ <code>u.Row</code>
获取焦点行
**返回值**: <code>u.Row</code> - 焦点行
**Example**
```js
datatable.getFocusRow()
```
<a name="DataTable.getFocusIndex"></a>
### DataTable.getFocusIndex() ⇒ <code>number</code>
获取焦点行索引
**返回值**: <code>number</code> - 焦点行索引
**Example**
```js
datatable.getFocusIndex()
```
<a name="DataTable.getMeta"></a>
### DataTable.getMeta([fieldName], [key]) ⇒ <code>object</code>
获取meta信息
**返回值**: <code>object</code> - meta信息
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| [fieldName] | <code>string</code> | 需要获取的字段 |
| [key] | <code>string</code> | 需要获取的字段指定meta信息 |
**Example**
```js
datatable.getMeta() // 获取所有meta信息
datatable.getMeta('field1') // 获取field1所有meta信息
datatable.getMeta('field1','type') // 获取field1的key信息
```
<a name="DataTable.getRowMeta"></a>
### DataTable.getRowMeta([fieldName], [key]) ⇒ <code>object</code>
获取当前行的meta信息,如果不存在当前行则获取DataTable的meta信息
**返回值**: <code>object</code> - meta信息
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| [fieldName] | <code>string</code> | 需要获取的字段 |
| [key] | <code>string</code> | 需要获取的字段指定meta信息 |
**Example**
```js
datatable.getRowMeta() // 获取当前行所有meta信息
datatable.getRowMeta('field1') // 获取当前行field1所有meta信息
datatable.getRowMeta('field1','type') // 获取当前行field1的key信息
```
<a name="DataTable.getParam"></a>
### DataTable.getParam(key) ⇒ <code>\*</code>
获取参数参数值
**返回值**: <code>\*</code> - 参数参数值
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| key | <code>string</code> | 参数对应的key |
**Example**
```js
datatable.getParam('param1')
```
<a name="DataTable.getSelectedIndex"></a>
### DataTable.getSelectedIndex() ⇒ <code>number</code>
获取选中行索引,多选时,只返回第一个行索引
**返回值**: <code>number</code> - 选中行索引
**Example**
```js
datatable.getSelectedIndex()
```
<a name="DataTable.getSelectedIndices"></a>
### DataTable.getSelectedIndices() ⇒ <code>array</code>
获取选中的所有行索引数组
**返回值**: <code>array</code> - 所有行索引数组
**Example**
```js
datatable.getSelectedIndices()
```
<a name="DataTable.getSelectedDatas"></a>
### DataTable.getSelectedDatas([withEmptyRow]) ⇒ <code>array</code>
获取选中行的数据信息
**返回值**: <code>array</code> - 发生变化的数据信息
| 参数 | 类型 | Default | 描述 |
| --- | --- | --- | --- |
| [withEmptyRow] | <code>boolean</code> | <code>false</code> | 未选中的数据是否使用空行代替,true表示以空行代替未选中行,false相反 |
**Example**
```js
datatable.getSelectedDatas()
datatable.getSelectedDatas(true)
```
<a name="DataTable.getSelectedRows"></a>
### DataTable.getSelectedRows() ⇒ <code>array</code>
获取选中的Row对象
**返回值**: <code>array</code> - 选中的Row对象
**Example**
```js
datatable.getSelectedRows()
```
<a name="DataTable.getSimpleData"></a>
### DataTable.getSimpleData([options]) ⇒ <code>array</code>
获取数据信息,只获取字段名与字段值
**返回值**: <code>array</code> - 获取到的数据信息
| 参数 | 类型 | Default | 描述 |
| --- | --- | --- | --- |
| [options] | <code>object</code> | | [description] |
| [options.type] | <code>string</code> | <code>"all"</code> | 获取数据的规则 all:所有数据 current:当前行数据 focus:焦点行数据 select:选中行数据 change:发生改变的数据 |
| [options.fields] | <code>array</code> | | 需要获取数据的字段名数组 |
**Example**
```js
datatable.getSimpleData() // 获取所有数据信息
datatable.getSimpleData({type:'current'}) // 获取当前行数据信息
datatable.getSimpleData({type:'current','fields':['filed1','field3']}) // 获取当前行field1和filed3数据信息
```
<a name="DataTable.setMeta"></a>
### DataTable.setMeta(fieldName, key, value)
设置meta信息
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| fieldName | <code>string</code> | 需要设置meta信息的字段名 |
| key | <code>string</code> | meta信息的key |
| value | <code>string</code> | meta信息的值 |
**Example**
```js
datatable.setMeta('filed1','type','string')
```
<a name="DataTable.updateMeta"></a>
### DataTable.updateMeta(meta)
更新meta信息
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| meta | <code>object</code> | 需要更新的meta信息 |
**Example**
```js
var metaObj = {supplier: {meta: {precision:'3', default: '0239900x', display:'显示名称'}}}
datatable.updateMeta(metaObj)
```
<a name="DataTable.addParam"></a>
### DataTable.addParam(key, value)
增加参数参数
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| key | <code>string</code> | 需要增加的key值 |
| value | <code>\*</code> | 需要增加的具体指 |
**Example**
```js
datatable.addParam('precision','3')
```
<a name="DataTable.addParams"></a>
### DataTable.addParams(params)
增加多个参数参数
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| params | <code>object</code> | 需要增加的参数对象 |
**Example**
```js
var paramsObj = {
'precision':'3',
'default':'1.234'
}
datatable.addParams(paramsObj)
```
<a name="DataTable.refSelectedRows"></a>
### DataTable.refSelectedRows(fieldName)
为选中行绑定监听,当选中行发生改变时触发对应方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| fieldName | <code>string</code> | 绑定的字段名 |
**Example**
```js
datatable.refSelectedRows().subscribe(function(){})
```
<a name="DataTable.ref"></a>
### DataTable.ref(fieldName)
为某个字段绑定监听,当字段发生改变时触发对应方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| fieldName | <code>string</code> | 绑定的字段名 |
**Example**
```js
datatable.ref('field1').subscribe(function(){})
```
<a name="DataTable.refMeta"></a>
### DataTable.refMeta(fieldName, key)
绑定字段属性,当字段属性发生改变时触发对应方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| fieldName | <code>string</code> | 绑定的字段名 |
| key | <code>string</code> | 绑定的属性key |
**Example**
```js
datatable.refMeta('field1','type').subscribe(function(){})
```
<a name="DataTable.refRowMeta"></a>
### DataTable.refRowMeta(fieldName, key)
绑定当前行的字段属性,当字段属性发生改变时触发对应方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| fieldName | <code>string</code> | 绑定的字段名 |
| key | <code>string</code> | 绑定的属性key |
**Example**
```js
datatable.refRowMeta('field1','type').subscribe(function(){})
```
<a name="DataTable.refEnable"></a>
### DataTable.refEnable(fieldName)
绑定字段是否可修改属性,当字段可修改属性发生改变时触发对应方法
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| fieldName | <code>string</code> | 绑定的字段名 |
**Example**
```js
datatable.refEnable('field1').subscribe(function(){})
```
<a name="DataTable.removeRowByRowId"></a>
### DataTable.removeRowByRowId(rowId)
根据rowId删除指定行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| rowId | <code>string</code> | 需要删除行的rowId |
**Example**
```js
datatable.removeRowByRowId('rowid1')
```
<a name="DataTable.removeRow"></a>
### DataTable.removeRow(index)
根据索引删除指定行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 需要删除行的索引 |
**Example**
```js
datatable.removeRow(1)
```
<a name="DataTable.removeAllRows"></a>
### DataTable.removeAllRows()
删除所有行
**Example**
```js
datatable.removeAllRows();
```
<a name="DataTable.removeRows"></a>
### DataTable.removeRows(indices)
根据索引数据删除多条数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| indices | <code>array</code> | 需要删除的数据行对应索引数组 |
**Example**
```js
datatable.removeRows([1,2])
```
<a name="DataTable.clear"></a>
### DataTable.clear()
清空datatable的所有数据以及分页数据以及index
**Example**
```js
datatable.clear()
```
<a name="DataTable.addRow"></a>
### DataTable.addRow(row)
在最后位置添加一条数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| row | <code>u.Row</code> | 数据行 |
**Example**
```js
var row1 = new Row({parent: datatable})
row1.setData({
field1: 'value1',
field2: 'value2'
})
datatable.addRow(row1)
```
<a name="DataTable.addRows"></a>
### DataTable.addRows(rows)
在最后位置添加多条数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| rows | <code>array</code> | 数据行数组 |
**Example**
```js
var row1 = new Row({parent: datatable})
row1.setData({
field1: 'value1',
field2: 'value2'
})
var row2 = new Row({parent: datatable})
row2.setData({
field1: 'value11',
field2: 'value22'
})
datatable.addRow([row1,row2])
```
<a name="DataTable.insertRow"></a>
### DataTable.insertRow(index, row)
在指定索引位置添加一条数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 指定索引 |
| row | <code>u.Row</code> | 数据行 |
**Example**
```js
var row1 = new Row({parent: datatable})
row1.setData({
field1: 'value1',
field2: 'value2'
})
datatable.insertRow(1,row1)
```
<a name="DataTable.insertRows"></a>
### DataTable.insertRows(index, rows)
在指定索引位置添加多条数据行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 指定索引 |
| rows | <code>array</code> | 数据行数组 var row1 = new Row({parent: datatable}) row1.setData({ field1: 'value1', field2: 'value2' }) var row2 = new Row({parent: datatable}) row2.setData({ field1: 'value11', field2: 'value22' }) datatable.insertRows(1,[row1,row2]) |
<a name="DataTable.createEmptyRow"></a>
### DataTable.createEmptyRow() ⇒ <code>u.Row</code>
创建空行
**返回值**: <code>u.Row</code> - 空行对象
**Example**
```js
datatable.createEmptyRow();
```
<a name="DataTable.setAllRowsSelect"></a>
### DataTable.setAllRowsSelect()
设置所有行选中
**Example**
```js
datatable.setAllRowsSelect()
```
<a name="DataTable.setRowSelect"></a>
### DataTable.setRowSelect(index)
根据索引设置选中行,清空之前已选中的所有行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 需要选中行的索引 |
**Example**
```js
datatable.setRowSelect(1)
```
<a name="DataTable.setRowsSelect"></a>
### DataTable.setRowsSelect(indices)
根据索引数组设置选中行,清空之前已选中的所有行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| indices | <code>array</code> | 需要选中行的索引数组 |
**Example**
```js
datatable.setRowsSelect([1,2])
```
<a name="DataTable.addRowSelect"></a>
### DataTable.addRowSelect(index)
根据索引添加选中行,不会清空之前已选中的行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 需要选中行的索引 |
**Example**
```js
datatable.addRowSelect(1)
```
<a name="DataTable.addRowsSelect"></a>
### DataTable.addRowsSelect(indices)
根据索引数组添加选中行,不会清空之前已选中的行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| indices | <code>array</code> | 需要选中行的索引数组 |
**Example**
```js
datatabel.addRowsSelect([1,2])
```
<a name="DataTable.setAllRowsUnSelect"></a>
### DataTable.setAllRowsUnSelect([options])
全部取消选中
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| [options] | <code>object</code> | 可选参数 |
| [options.quiet] | <code>boolean</code> | 如果为true则不触发事件,否则触发事件 |
**Example**
```js
datatable.setAllRowsUnSelect() // 全部取消选中
datatable.setAllRowsUnSelect({quiet:true}) // 全部取消选中,不触发事件
```
<a name="DataTable.setRowUnSelect"></a>
### DataTable.setRowUnSelect(index)
根据索引取消选中
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | 需要取消选中的行索引 |
**Example**
```js
datatable.setRowUnSelect(1)
```
<a name="DataTable.setRowsUnSelect"></a>
### DataTable.setRowsUnSelect(indices)
根据索引数组取消选中
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| indices | <code>array</code> | 需要取消选中的行索引数组 |
**Example**
```js
datatable.setRowsUnSelect([1,2])
```
<a name="DataTable.toggleAllSelect"></a>
### DataTable.toggleAllSelect()
当全部选中时取消选中,否则全部选中
<a name="DataTable.setRowFocus"></a>
### DataTable.setRowFocus(index, [quiet], [force])
设置焦点行
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| index | <code>number</code> | <code>u.Row</code> | 行对象或者行index |
| [quiet] | <code>boolean</code> | 如果为true则不触发事件,否则触发事件 |
| [force] | <code>boolean</code> | 如果为true当index行与已focus的行相等时,仍然触发事件,否则不触发事件 |
**Example**
```js
datatable.setRowFocus(1) // 设置第二行为焦点行
datatable.setRowFocus(1,true) // 设置第二行为焦点行,不触发事件
datatable.setRowFocus(1,false,true) // 设置第二行为焦点行,如果当前焦点行为第二行,仍旧触发事件
```
<a name="DataTable.setRowUnFocus"></a>
### DataTable.setRowUnFocus()
焦点行反选
**Example**
```js
datatable.setRowUnFocus()
```
<a name="DataTable.setSimpleData"></a>
### DataTable.setSimpleData(data, [options])
设置数据, 只设置字段值
| 参数 | 类型 | Default | 描述 |
| --- | --- | --- | --- |
| data | <code>array</code> | | 数据信息 |
| [options] | <code>boject</code> | | 可配置参数 |
| [options.unSelect] | <code>boject</code> | <code>true</code> | 是否默认选中第一行,如果为true则不选中第一行,否则选中第一行 |
**Example**
```js
var data = [{
filed1:'value1',
field2:'value2'
},{
filed1:'value11',
field2:'value21'
}]
datatable.setSimpleData(data)
datatable.setSimpleData(data,{unSelect:false})
```
<a name="DataTable.addSimpleData"></a>
### DataTable.addSimpleData(data, status)
追加数据, 只设置字段值
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| data | <code>array</code> | 数据信息 |
| status | <code>string</code> | 追加数据信息的状态,参照Row对象的状态介绍 |
**Example**
```js
var data = [{
filed1:'value1',
field2:'value2'
},{
filed1:'value11',
field2:'value21'
}]
datatable.addSimpleData(data,Row.STATUS.NEW)
```
<a name="DataTable.on"></a>
### DataTable.on(name, [callback], [one]) ⇒ <code>[DataTable](#DataTable)</code>
为DataTable对象添加监听
**返回值**: <code>[DataTable](#DataTable)</code> - 当前的DataTable对象
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | <code>string</code> | <code>array</code> | <code>object</code> | 针对不同用法分别对应监听名称、监听名称对应的数组、监听名称及对应的回调组成的对象 |
| [callback] | <code>function</code> | 监听对应的回调函数 |
| [one] | <code>boolean</code> | 是否只执行一次监听,为true则表示只执行一次回调函数,否则每次触发监听都是执行回调函数 |
**Example**
```js
datatable.on(u.DataTable.ON_ROW_FOCUS, function() {}) // 普通
datatable.on([u.DataTable.ON_INSERT, u.DataTable.ON_DELETE], function() {}) // 数组
datatable.on({u.DataTable.ON_INSERT: function() {}, u.DataTable.ON_DELETE: function() {}}) // map
```
<a name="DataTable.off"></a>
### DataTable.off(name, [callback]) ⇒ <code>[DataTable](#DataTable)</code>
为DataTable对象取消监听
**返回值**: <code>[DataTable](#DataTable)</code> - 当前的DataTable对象
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | <code>string</code> | <code>array</code> | <code>object</code> | 针对不同用法分别对应监听名称、监听名称对应的数组、监听名称及对应的回调组成的对象 |
| [callback] | <code>function</code> | 监听对应的回调函数 |
**Example**
```js
datatable.off(u.DataTable.ON_ROW_FOCUS, function() {}) // 普通
datatable.off([u.DataTable.ON_INSERT, u.DataTable.ON_DELETE], function() {}) // 数组
datatable.off({u.DataTable.ON_INSERT: function() {}, u.DataTable.ON_DELETE: function() {}}) // map
```
<a name="DataTable.one"></a>
### DataTable.one(name, [callback])
为DataTable对象添加只执行一次的监听
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | <code>string</code> | <code>array</code> | <code>object</code> | 针对不同用法分别对应监听名称、监听名称对应的数组、监听名称及对应的回调组成的对象 |
| [callback] | <code>function</code> | 监听对应的回调函数 |
**Example**
```js
datatable.one(u.DataTable.ON_ROW_FOCUS, function() {}) // 普通
datatable.one([u.DataTable.ON_INSERT, u.DataTable.ON_DELETE], function() {}) // 数组
datatable.one({u.DataTable.ON_INSERT: function() {}, u.DataTable.ON_DELETE: function() {}}) // map
```
<a name="DataTable.trigger"></a>
### DataTable.trigger(name) ⇒ <code>[DataTable](#DataTable)</code>
触发DataTable对象绑定的事件监听
**返回值**: <code>[DataTable](#DataTable)</code> - 当前的DataTable对象
| 参数 | 类型 | 描述 |
| --- | --- | --- |
| name | <code>string</code> | 需要触发的事件监听对应的名称 |
**Example**
```js
datatable.trigger('valuechange')
```