dataLoadCoordinator
dataLoadCoordinator
facet 支持触发数据加载,以及声明式的将数据加载器和数据容器、可视化组件、视图生命周期事件进行连接。
基本用法
如需在视图的 BeforeShowEvent
事件触发所有的数据加载器,只需在视图的 XML 描述中添加 dataLoadCoordinator
,其属性 auto="true"
:
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
工作模式
可以配置 dataLoadCoordinator
在自动、手动或半自动模式下工作。
自动模式
此模式中,dataLoadCoordinator
依赖使用特定前缀的参数名称。前缀表示提供参数值和发送变更事件的组件。
默认情况下,数据容器的参数前缀是 container_
,可视化组件的参数前缀是 component_
。通过 componentPrefix 和 containerPrefix 属性可以使用不同的前缀。
如果加载器的查询语句中没有参数,则该加载器会在 BeforeShowEvent
中自动刷新。也就是说,如果查询语句包含任意参数,例如 select e from User e where e.department = :department
,则加载器不会在视图打开时自动加载。需要手动设置参数值并调用 userDl.load()
。
但是 查询条件 中的参数不会影响加载器在 BeforeShowEvent
中的自动加载。
手动模式
此模式中,使用内部的 refresh 元素定义数据加载器何时触发刷新。
refresh 元素
refresh
元素支持为数据加载器定义刷新的条件。
该元素的唯一属性是 loader
,定义加载器的 id
。
refresh
元素可以有下列内部的元素,用于定义触发条件:
-
onComponentValueChanged
- 当可视化组件的值改变时触发加载器。有下列属性:-
component
- 指定可视化组件的id
。 -
likeClause
- 如果在 查询条件 中使用like
表达式,可以定义下面三种搜索模式之一:-
NONE
- 默认值。 -
CASE_SENSITIVE
- 大小写敏感。 -
CASE_INSENSITIVE
- 大小写不敏感。
-
-
param
- 指定查询参数名称。
-
-
onContainerItemChanged
- 当数据容器中的内容改变时触发加载器。有下列属性:-
container
- 指定数据容器的id
。 -
param
- 指定查询参数名称。
-
-
onViewEvent
- 在视图生命周期事件中触发加载器。有下列属性:-
type
- 定义视图事件的类型,可能值:-
Init
- 在InitEvent
事件中触发。 -
BeforeShow
- 在BeforeShowEvent
事件中触发。 -
Ready
- 在ReadyEvent
事件中触发。
-
-