jsf - Primefaces filterBy 覆盖其他数据表
问题描述
我有两个类Person
和Pet
,其中一个人可能有多个宠物:
public class Person {
List<Pet> pets;
// Getter & Setter
}
在我看来,我有一个数据表,列出了List<Person>
在搜索中找到的所有人员 ( ):
<p:datatable value="#{SearchBean.resultList}" rowExpandMode="single" id="resultList" var="result" ...>
<p:column>
<p:rowToggler rendered="#{result.pets.size() > 0}" />
</p:column>
<!-- Some other columns for the persons -->
<p:rowExpansion> <!-- See below --> </p:rowExpansion>
</p:datatable>
对于每个人(即行),我添加了一个rowExpansion
包含另一个数据表,其中包含属于此人的所有宠物,如图所示,如果有一些宠物属于此人:
<p:rowExpansion>
<p:datatable value="#{result.pets}" id="petsResultTable" var="petsResult" ...>
<p:column filterBy="#{petsResult.name}">
<h:outputText value="#{petsResult.name}"/>
</p:datatable>
</p:rowExpansion>
由于在我的示例中有些人有很多宠物,因此我添加了过滤宠物的机会。一切看起来都很好,并且显示正确。过滤器也工作正常。
但我的问题是,如果我过滤人 A 的 pets 表并随后扩展人 B 的 pets 表,则该 pets 表也只包含人 A 的过滤后的 pets 表的结果。所以看起来,过滤之一宠物表覆盖所有宠物表的内容。
是否有可能使过滤结果仅可用于过滤它的特定数据表?或者是否有可能在扩展他们的行时“刷新”另一个人 B 的宠物表?
解决方案
推荐阅读
- java - 如何在下拉列表中使用 foreach 循环?
- node.js - 从 lambda 向 sns 主题发布消息
- javascript - 尝试执行我在 pyrthon 中执行的功能时的无限循环
- php - 平均php数组中的一列
- php - Instagram Basic Display API:如何将帖子数量限制在 20 以下?
- typescript - 为什么这个递归类型定义需要定义原语?
- mysql - 仅更新别名 updateAt 属性时,续集更新不起作用
- c++ - 使用 RapidJSON 解析对象数组
- flutter - 调整图像大小以适应卡片抖动
- r - 如何在 R 中的 Shiny 中包含滑块输入范围内的所有观察值