ht.SelectionModel(dm)

new SelectionModel(dm)

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

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

Parameters:
Name Type Description
dm ht.DataModel

Methods

addPropertyChangeListener(listener, scope, ahead) → {void}

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

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope any <optional>

监听器函数域

ahead boolean <optional>

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

Returns:
void

addSelectionChangeListener(listener, scope, ahead) → {void}

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

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope any <optional>

监听器函数域

ahead boolean <optional>

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

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

appendSelection(datas) → {void}

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

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

数据元素

Returns:
void

as(datas) → {void}

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

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

数据元素

Returns:
void

clearSelection() → {void}

取消所有选中数据元素

Returns:
void

co(data) → {boolean}

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

Parameters:
Name Type Description
data ht.Data

要判断的data对象

Returns:
boolean -

是否选中

contains(data) → {boolean}

判断data对象是否被选中

Parameters:
Name Type Description
data ht.Data

要判断的data对象

Returns:
boolean -

是否选中

cs() → {void}

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

Returns:
void

dm() → {ht.DataModel}

获取getDataModel的缩写

Returns:
ht.DataModel

each(func, scope) → {void}

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

Parameters:
Name Type Attributes Description
func Object

遍历函数

scope any <optional>

函数域

Returns:
void
Example
selectionModel.each(function(data) {
    console.log(data: Data);
});

fd() → {ht.Data}

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

Returns:
ht.Data -

首个被选中的数据元素

getDataModel() → {ht.DataModel}

获取DataModel

Returns:
ht.DataModel -

dataModel

getFilterFunc() → {void}

返回选中过滤器函数

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

Returns:
void -

选中过滤器函数

getFirstData() → {ht.Data}

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

Returns:
ht.Data -

首个被选中的数据元素

getLastData() → {ht.Data}

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

Returns:
ht.Data -

最后被选中的数据元素

getSelection() → {ht.List}

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

Returns:
ht.List -

被选中的数据元素集合

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 -

最后被选中的数据元素

mp(listener, scope, ahead) → {void}

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

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope any <optional>

监听器函数域

ahead boolean <optional>

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

Returns:
void

ms(listener, scope, ahead) → {void}

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

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope any <optional>

监听器函数域

ahead boolean <optional>

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

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

removePropertyChangeListener(listener, scope) → {void}

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

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope any <optional>

监听器函数域

Returns:
void

removeSelection(datas) → {void}

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

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

数据元素

Returns:
void

removeSelectionChangeListener(listener, scope) → {void}

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

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope any <optional>

监听器函数域

Returns:
void

rs(datas) → {void}

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

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

数据元素

Returns:
void

sa() → {void}

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

Returns:
void

selectAll() → {void}

选中DataModel中的所有数据元素

Returns:
void

setFilterFunc(func) → {void}

设置选中过滤器函数

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

Parameters:
Name Type Description
func function

选中过滤器函数

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

setSelection(datas) → {ht.List}

设置选中数据元素,参数可为单个数据元素,也可为List或Array数组

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

数据元素

Returns:
ht.List

setSelectionMode(mode) → {void}

设置选中模式,可选值:

  • none:不可选中
  • single:只能选中一个数据元素
  • multiple:可以选中多个数据元素
Parameters:
Name Type Description
mode string

选中模式

Returns:
void
Default Value:
  • multiple

size() → {number}

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

Returns:
number

ss(datas) → {ht.List}

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

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

数据元素

Returns:
ht.List

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

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

Parameters:
Name Type Attributes Description
matchFunc function <optional>

过滤函数

scope any <optional>

函数域

Returns:
ht.List -

元素集合

ump(listener, scope) → {void}

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

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope any <optional>

监听器函数域

Returns:
void

ums(listener, scope) → {void}

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

Parameters:
Name Type Attributes Description
listener function

监听器函数

scope any <optional>

监听器函数域

Returns:
void