# Class: DataList

## F. DataList

#### new F.DataList(options)

F.DataList.js, line 2
  列表控件

  Name | Type | Description
  --- | --- | ---
  `options` | Object | 初始参数
  Name | Type | Default | Description
  --- | --- | --- | ---
  `fields` | Array.<string> | ['value','text','enabled','group','href','hrefTarget','arrow' | 数据源对应的字段
  `group` | boolean | false | 是否启用分组
  `selectable` | boolean | false | 是否可选择
  `multiSelect` | boolean | false | 是否允许多选（通过 Ctrl, Shift 键进行多选）
  `enableTextSelection` | boolean | false | 是否启用文本选择
  `keepCurrentSelection` | boolean | false | 多选时保持当前已选中项
  `clickOnContextMenu` | boolean | true | 右键点击时选中当前项（默认为true）
  `type` | string | 'datalist' | 控件类型

### Extends

- F.Component

### Members

#### eljQuery

  控件对应的jQuery节点对象

### Methods

#### appendData(data)

F.DataList.js, line 93
  追加数据

  Name | Type | Description
  --- | --- | ---
  `data` | Array.<Object> | 数据

#### clearSelection()

F.DataList.js, line 216
  清空全部选中项

#### deselectAllItems()

F.DataList.js, line 192
  取消选中全部列表项

#### deselectItem(row)

F.DataList.js, line 179
  取消选中列表项

  Name | Type | Description
  --- | --- | ---
  `row` | number | string | jQuery | 项索引、项值或者项元素

#### deselectItems(itemValues)

F.DataList.js, line 186
  取消选中多列表项

  Name | Type | Description
  --- | --- | ---
  `itemValues` | Array.<number> | Array.<string> | Array.<jQuery> | 项索引数组、项值数组或者项元素数组

#### inherited disable()

F.Component.js, line 236
  禁用控件

#### inherited doLayout(startFormTopmostComonent)

F.Component.js, line 122
  执行布局操作

  Name | Type | Default | Description
  --- | --- | --- | ---
  `startFormTopmostComonent` | boolean | false | optional 从最顶层的控件开始布局

#### inherited enable()

F.Component.js, line 242
  启用控件

#### inherited getAttr(key){string}

F.Component.js, line 101
  获取节点属性

  Name | Type | Description
  --- | --- | ---
  `key` | string | 节点属性键

  ##### Returns:

  Type | Description
  --- | ---
  string | 节点属性值

#### inherited getHeight(){number}

F.Component.js, line 136
  获取控件高度

  ##### Returns:

  Type | Description
  --- | ---
  number | 高度

#### getItemData(item){Object}

F.DataList.js, line 121
  获取项数据

  Name | Type | Description
  --- | --- | ---
  `item` | number | string | jQuery | 项索引、项值或者项元素

  ##### Returns:

  Type | Description
  --- | ---
  Object | 项数据

#### getItemEl(row){jQuery}

F.DataList.js, line 132
  获取列表项元素

  Name | Type | Description
  --- | --- | ---
  `row` | number | string | jQuery | 项索引、项值或者项元素

  ##### Returns:

  Type | Description
  --- | ---
  jQuery | 列表项元素

#### getItemEls(){jQuery}

F.DataList.js, line 141
  获取列表项元素集合

  ##### Returns:

  Type | Description
  --- | ---
  jQuery | 列表项元素集合

#### getSelectedItem(returnItemData){string}

F.DataList.js, line 209
  获取选中的项值

  Name | Type | Description
  --- | --- | ---
  `returnItemData` | boolean | 返回包含项对象的数组，否则返回包含项值的数组

  ##### Returns:

  Type | Description
  --- | ---
  string | 列值

#### getSelectedItems(returnItemData){Array.<string>}

F.DataList.js, line 201
  获取选中的项值数组

  Name | Type | Description
  --- | --- | ---
  `returnItemData` | boolean | 返回包含项对象的数组，否则返回包含项值的数组

  ##### Returns:

  Type | Description
  --- | ---
  Array.<string> | 项值数组

#### getTextByValue(value){string}

F.DataList.js, line 103
  获取值对应的显示文本

  Name | Type | Description
  --- | --- | ---
  `value` | string | 值

  ##### Returns:

  Type | Description
  --- | ---
  string | 值对应的显示文本

#### inherited getTooltip(){string}

F.Component.js, line 196
  获取提示信息

  ##### Returns:

  Type | Description
  --- | ---
  string | 提示信息

#### getValueByText(text){string}

F.DataList.js, line 112
  获取显示文本对应的值

  Name | Type | Description
  --- | --- | ---
  `text` | string | 显示文本

  ##### Returns:

  Type | Description
  --- | ---
  string | 显示文本对应的值

#### inherited getWidth(){number}

F.Component.js, line 130
  获取控件宽度

  ##### Returns:

  Type | Description
  --- | ---
  number | 宽度

#### inherited hide()

F.Component.js, line 262
  隐藏控件

#### inherited isDisabled(){boolean}

F.Component.js, line 224
  是否禁用

  ##### Returns:

  Type | Description
  --- | ---
  boolean | 是否禁用

#### inherited isType(value){boolean}

F.Base.js, line 23
  检测当前实例是否指定的控件类型

  Name | Type | Description
  --- | --- | ---
  `value` | Object | 控件类型

  ##### Returns:

  Type | Description
  --- | ---
  boolean | 如果当前实例是指定的控件类型，返回true；否则返回false

  ##### Example

      grid1.isType('panel') // 返回true
      grid1.isType('grid')  // 返回true

#### inherited isVisible(){boolean}

F.Component.js, line 216
  是否可见

  ##### Returns:

  Type | Description
  --- | ---
  boolean | 是否可见

#### loadData(data, value)

F.DataList.js, line 85
  加载数据

  Name | Type | Description
  --- | --- | ---
  `data` | Array.<Object> | 数据
  `value` | string | Array.<string> | 选中的值

#### inherited off(eventNames, fn)

F.Component.js, line 181
  移除事件

  Name | Type | Description
  --- | --- | ---
  `eventNames` | string | 事件名称（可以空格分割多个事件名称）
  `fn` | F_Component_on | 之前注册的事件处理函数

#### inherited on(eventNames, fn)

F.Component.js, line 174
  注册事件

  Name | Type | Description
  --- | --- | ---
  `eventNames` | string | 事件名称（可以空格分割多个事件名称）
  `fn` | F_Component_on | 触发事件时执行的函数

#### inherited remove()

F.Component.js, line 115
  删除父控件中移除当前控件

#### inherited removeAttr(key)

F.Component.js, line 108
  删除节点属性

  Name | Type | Description
  --- | --- | ---
  `key` | string | 节点属性键

#### inherited removeTooltip()

F.Component.js, line 208
  删除提示信息

#### selectAllItems()

F.DataList.js, line 172
  选中全部列表项

#### selectItem(itemValue, options)

F.DataList.js, line 155
  选中列表项

  Name | Type | Description
  --- | --- | ---
  `itemValue` | number | string | jQuery | 项索引、项值或者项元素
  `options` | Object | 参数
  Name | Type | Default | Description
  --- | --- | --- | ---
  `keep` | boolean | false | 是否保持已选中项
  `keepUnselectable` | boolean | true | 是否保持不可选择项的选中状态（options.keep=true时，此参数无效）
  `scrollTo` | boolean | true | 是否滚动到选中项（仅有一项处于选中状态时有效）

#### selectItems(itemValues, options)

F.DataList.js, line 166
  选中多的列表项

  Name | Type | Description
  --- | --- | ---
  `itemValues` | Array.<number> | Array.<string> | Array.<jQuery> | 项索引数组、项值数组或者项元素数组
  `options` | Object | 参数
  Name | Type | Default | Description
  --- | --- | --- | ---
  `keep` | boolean | false | 是否保持已选中项
  `keepUnselectable` | boolean | true | 是否保持不可选择项的选中状态（options.keep=true时，此参数无效）
  `scrollTo` | boolean | true | 是否滚动到选中项（仅有一项处于选中状态时有效）

#### inherited setAttr(key, value)

F.Component.js, line 94
  设置节点属性

  Name | Type | Description
  --- | --- | ---
  `key` | string | 节点属性键
  `value` | string | 节点属性值

#### inherited setAttrs(attrs)

F.Component.js, line 86
  设置节点属性

  Name | Type | Description
  --- | --- | ---
  `attrs` | Object | 节点属性对象

#### inherited setDisabled(disabled)

F.Component.js, line 248
  设置控件的禁用状态

  Name | Type | Description
  --- | --- | ---
  `disabled` | boolean | 是否禁用

#### inherited setEnabled(enabled)

F.Component.js, line 254
  设置控件的启用状态

  Name | Type | Description
  --- | --- | ---
  `enabled` | boolean | 是否启用

#### inherited setHeight(height)

F.Component.js, line 143
  设置控件高度

  Name | Type | Description
  --- | --- | ---
  `height` | number | 高度

#### inherited setHidden(hidden)

F.Component.js, line 286
  设置控件的隐藏状态

  Name | Type | Description
  --- | --- | ---
  `hidden` | boolean | 是否隐藏

#### inherited setSize(width, height)

F.Component.js, line 158
  设置控件尺寸

  Name | Type | Description
  --- | --- | ---
  `width` | number | 宽度
  `height` | number | 高度

#### inherited setTooltip(tooltip)

F.Component.js, line 202
  设置提示信息

  Name | Type | Description
  --- | --- | ---
  `tooltip` | string | 提示信息

#### inherited setVisible(visible)

F.Component.js, line 280
  设置控件的显示状态

  Name | Type | Description
  --- | --- | ---
  `visible` | boolean | 是否可见

#### inherited setWidth(width)

F.Component.js, line 150
  设置控件宽度

  Name | Type | Description
  --- | --- | ---
  `width` | number | 宽度

#### inherited show()

F.Component.js, line 268
  显示控件

#### inherited toggleEnabled()

F.Component.js, line 230
  切换启用状态

#### inherited toggleVisible()

F.Component.js, line 274
  切换显示状态

#### inherited trigger(eventName, args)

F.Component.js, line 189
  触发事件

  Name | Type | Description
  --- | --- | ---
  `eventName` | string | 事件名称
  `args` | Object | 事件参数

### Events

#### inherited beforehide

F.Component.js, line 57
  隐藏控件之前触发（返回false则取消隐藏操作）

#### beforeitemcontextmenu

F.DataList.js, line 46
  右键点击行时触发（返回false则阻止浏览器默认的右键菜单）

  Name | Type | Description
  --- | --- | ---
  `event` | jQuery.Event | 事件对象
  `itemValue` | string | 列表项的值

#### inherited beforeshow

F.Component.js, line 69
  显示控件之前触发（返回false则取消显示操作）

#### inherited hide

F.Component.js, line 63
  隐藏控件时触发

#### itemclick

F.DataList.js, line 30
  点击列表项时触发

  Name | Type | Description
  --- | --- | ---
  `event` | jQuery.Event | 事件对象
  `itemValue` | string | 列表项的值

#### itemdblclick

F.DataList.js, line 38
  双击行时触发

  Name | Type | Description
  --- | --- | ---
  `event` | jQuery.Event | 事件对象
  `itemValue` | string | 列表项的值

#### itemdeselect

F.DataList.js, line 70
  取消选中列表项时触发

  Name | Type | Description
  --- | --- | ---
  `event` | jQuery.Event | 事件对象
  `itemValue` | string | 项值

#### itemselect

F.DataList.js, line 61
  选中列表项时触发

  Name | Type | Description
  --- | --- | ---
  `event` | jQuery.Event | 事件对象
  `itemValue` | string | 项值

#### inherited layout

F.Component.js, line 45
  布局控件时触发

#### inherited render

F.Component.js, line 51
  渲染控件时触发

#### selectionchange

F.DataList.js, line 54
  选中项改变时触发

  Name | Type | Description
  --- | --- | ---
  `event` | jQuery.Event | 事件对象

#### inherited show

F.Component.js, line 75
  显示控件时触发