【发布时间】:2012-01-12 15:53:22
【问题描述】:
我刚刚在我们的应用程序中发现了一个奇怪的行为。
我们有一个丰富的:tabPanel switchType="ajax" 与多个选项卡。每个选项卡都包含一个rich:dataTable 和一个带有a4j:form 的编辑表单。
现在,当我们请求页面时,会呈现第一个选项卡并初始化数据表。到现在为止还挺好。 用户现在可以单击编辑链接 (a4j:commandLink) 以重新渲染带有所选实体的编辑表单,并且表单被正确地重新渲染。
但是:除此之外,我们还从其他选项卡上的数据表中获得了一个查询...即使选项卡未处于活动状态,丰富的数据表也会被初始化。未呈现,因为选项卡处于非活动状态。 奇怪的是,如果我使用普通的 h:dataTable 问题就消失了,即没有为这个获取结果列表。
到目前为止,我有两种解决方法:
如果我在 editLink 上使用 limitToList,似乎处理部分工作正常,但这意味着我们必须调整所有命令按钮/链接,如果我不将它的 id 包含到重新渲染属性...
我可以将选定的选项卡绑定到支持 bean 并使用 s:fragment 仅呈现活动选项卡的内容
虽然第二种解决方案非常简单,我现在正在使用这个解决方案,但我仍在寻求解释。
是否有人已经遇到过这种行为并且对正在发生的事情有解释?
谢谢 马丁
【问题讨论】: