ht.SelectionModel()

new SelectionModel()

选择模型管理DataModel模型中Data对象的选择状态,
每个DataModel对象都内置一个SelectionModel选择模型,
控制这个SelectionModel即可控制所有绑定该DataModel的视图组件的对象选择状态,
这意味着共享同一DataModel的组件默认就具有选中联动功能。

如果希望某些组件不与其他组件选中联动,
可通过调用view.setSelectionModelShared(false),
这样该view将创建一个专属的SelectionModel实例。

Methods

addPropertyChangeListener(listener, scope, ahead)

增加自身属性变化事件监听器

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope Object <optional>

监听器函数域

ahead Boolean <optional>

是否将当前监听器插入到监听器列表开头

See:

addSelectionChangeListener(listener, scope, ahead)

增加监听器,监听选中变化事件

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope Object <optional>

监听器函数域

ahead Boolean <optional>

是否将当前监听器插入到监听器列表开头

See:
Example
dataModel.addSelectionChangeListener(function(event) {
     //event格式:
     {
     	kind: "set",//事件类型set|remove|append|clear
     	datas: datas,//包含所有选中状态变化的数据元素,之前选中现在取消选中,和之前没选中现在被选中的数据元素
     }
});

appendSelection(datas)

追加选中一个或多个数据元素,参数可为单个数据元素,也可为ht.List或Array数组

Parameters:
Name Type Description
datas ht.Data | ht.List | Array

数据元素

See:

as(datas)

追加选中一个或多个数据元素,参数可为单个数据元素,也可为ht.List或Array数组,appendSelection的缩写

Parameters:
Name Type Description
datas ht.Data | ht.List | Array

数据元素

See:

clearSelection()

取消所有选中数据元素

See:

co(data)

判断data对象是否被选中,contains的缩写

Parameters:
Name Type Description
data ht.Data

要判断的data对象

See:

contains(data)

判断data对象是否被选中

Parameters:
Name Type Description
data ht.Data

要判断的data对象

See:

cs()

取消所有选中数据元素,clearSelection的缩写

See:

dm() → {ht.DataModel}

获取DataModelgetDataModel的缩写

Returns:
ht.DataModel -

dataModel

See:

each(func, scope)

提供一个回调函数遍历此选中模型

Parameters:
Name Type Attributes Description
func function

遍历函数

scope Object <optional>

函数域

Example
selectionModel.each(function(data) {
  console.log(data);
});

fd() → {ht.Data}

返回首个被选中的数据元素,如果没有选中数据元素则返回空,此方法是getFirstData的缩写

Returns:
ht.Data -

首个被选中的数据元素

See:

getDataModel() → {ht.DataModel}

获取DataModel

Returns:
ht.DataModel -

dataModel

See:

getFilterFunc() → {function}

返回选中过滤器函数

有些数据元素不希望被用户选中,可以通过设置此过滤器实现

Returns:
function -

选中过滤器函数

See:

getFirstData() → {ht.Data}

返回首个被选中的数据元素,如果没有选中数据元素则返回空

Returns:
ht.Data -

首个被选中的数据元素

See:

getLastData() → {ht.Data}

返回最后被选中的数据元素,如果没有选中数据元素则返回空

Returns:
ht.Data -

最后被选中的数据元素

See:

getSelection() → {ht.List}

获取所有被选中数据元素集合,注意不可直接对返回的集合进行增删操作,
如果需要增删操作,应使用toSelection方法

Returns:
ht.List -

被选中的数据元素集合

See:

getSelectionMode() → {String}

获取选中模式

Returns:
String -

none|single|multiple

Default Value:
  • multiple

isEmpty() → {Boolean}

判断是否有选中的数据元素

Returns:
Boolean

isSelectable(data) → {Boolean}

判断数据元素是否可被选中

Parameters:
Name Type Description
data ht.Data

要判断的数据元素

Returns:
Boolean

ld() → {ht.Data}

返回最后被选中的数据元素,如果没有选中数据元素则返回空,getLastData的缩写

Returns:
ht.Data -

最后被选中的数据元素

See:

mp(listener, scope, ahead)

增加自身属性变化事件监听器,addPropertyChangeListener的缩写

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope Object <optional>

监听器函数域

ahead Boolean <optional>

是否将当前监听器插入到监听器列表开头

See:

ms(listener, scope, ahead)

增加监听器,监听选中变化事件,addSelectionChangeListener的缩写

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope Object <optional>

监听器函数域

ahead Boolean <optional>

是否将当前监听器插入到监听器列表开头

See:
Example
dataModel.ms(function(event) {
     //event格式:
     {
     	kind: "set",//事件类型set|remove|append|clear
     	datas: datas,//包含所有选中状态变化的数据元素,之前选中现在取消选中,和之前没选中现在被选中的数据元素
     }
});

removePropertyChangeListener(listener, scope)

删除自身属性变化事件监听器

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope Object <optional>

监听器函数域

See:

removeSelection(datas)

取消选中数据元素,参数可为单个数据元素,也可为ht.List或Array数组

Parameters:
Name Type Description
datas ht.Data | ht.List | Array

数据元素

See:

removeSelectionChangeListener(listener, scope)

删除监听选中变化事件的监听器

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope Object <optional>

监听器函数域

See:

rs(datas)

取消选中数据元素,参数可为单个数据元素,也可为ht.List或Array数组,removeSelection的缩写

Parameters:
Name Type Description
datas ht.Data | ht.List | Array

数据元素

See:

sa()

选中DataModel中的所有数据元素,selectAll的缩写

See:

selectAll()

选中DataModel中的所有数据元素

See:

setFilterFunc(func)

设置选中过滤器函数

有些数据元素不希望被用户选中,可以通过设置此过滤器实现

Parameters:
Name Type Description
func function

选中过滤器函数

Example
//禁止选中name为test的数据元素
selectionModel.setFilterFunc(function(data) {
 if (data.getName() === 'test') {
 	return false;
 } else {
 	return true;
 }
});

setSelection(matchFunc, scope) → {ht.List}

以matchFunc为过滤函数构建新的元素集合并返回

Parameters:
Name Type Attributes Description
matchFunc function <optional>

过滤函数

scope Object <optional>

函数域

Returns:
ht.List -

元素集合

setSelectionMode(mode)

设置选中模式,可选值:


  • none:不可选中

  • single:只能选中一个数据元素

  • multiple:可以选中多个数据元素

Parameters:
Name Type Description
mode String

选中模式

Default Value:
  • multiple

size() → {Number}

获取选中模型中数据元素的个数

Returns:
Number

ss(datas)

设置选中数据元素,参数可为单个数据元素,也可为ht.List或Array数组,setSelection的缩写

Parameters:
Name Type Description
datas ht.Data | ht.List | Array

数据元素

toSelection() → {ht.List}

获取所有被选中数据元素集合(新数组)

Returns:
ht.List -

被选中的数据元素集合

See:

ump(listener, scope)

删除自身属性变化事件监听器,removePropertyChangeListener的缩写

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope Object <optional>

监听器函数域

See:

ums(listener, scope)

删除监听选中变化事件的监听器,removeSelectionChangeListener的缩写

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope Object <optional>

监听器函数域

See: