genericFilter 通用过滤器
基本用法
genericFilter
需要连接到一个独立的 CollectionContainer
或 KeyValueCollectionContainer
中定义的数据加载器。过滤器生成一个 Condition
对象,后续加载器使用这个条件从 数据存储 加载数据。对于 JPA 实体,数据存储会修改生成的 JPQL 查询语句,因此数据过滤是在数据库级别完成的,从数据库仅加载了过滤后的数据至应用程序内存。
默认情况下,实体的 列表视图 会自动添加 genericFilter
组件。
在 XML 描述中声明 genericFilter
的例子如下:
<data>
<collection id="customerDc" class="com.company.onboarding.entity.Customer">
<fetchPlan extends="_base">
</fetchPlan>
<loader id="customerDl">
<query>
<![CDATA[select c from Customer c]]>
</query>
</loader>
</collection>
</data>
<layout>
<genericFilter id="genericFilter" dataLoader="customerDl">
<properties include=".*"/>
</genericFilter>
<dataGrid id="customersTable"
width="100%"
dataContainer="customerDc">
<columns>
<column property="level"/>
<column property="age"/>
<column property="hobby"/>
<column property="firstName"/>
<column property="lastName"/>
<column property="rewardPoints"/>
</columns>
</dataGrid>
</layout>
上面例子中,数据容器包含了 Customer
实体实例的集合。数据加载用 JPQL 查询语句加载集合。genericFilter
组件通过 dataLoader
属性连接至数据加载器。数据通过与数据容器连接的 dataGrid
组件展示。
一个典型的过滤器是这样的:

默认情况下,这个组件使用快速过滤模式。用户可以添加一组过滤条件进行一次数据搜索,一旦关闭视图,设置的过滤条件也就没了。
快速过滤示例
假设我们有 Customer
实体,并想实现下列功能:
-
在
Customer
列表视图创建多条件的快速过滤器。 -
保存该过滤器以便将来使用。
保存过滤器
-
点击 Filter Settings(过滤器设置) 按钮,然后选择 Save with values(带值保存)。
-
为过滤器配置设置名称然后点击 OK 进行保存:
之后,过滤器会保存并展示在 Refresh(刷新) 按钮的下拉列表中。

<Reset filter>(重置过滤器) 菜单项可以用来重置当前已应用的搜索条件。
本页是否有帮助?
感谢您的反馈