我需要显示rich:popup
的{{1}},当用户按下按钮时,应显示rich:extendedDataTable
,并且必须重新呈现popup
,这是代码:
extendedDataTable
我第一次按<rich:popupPanel id="popupId" show="false" modal="true">
<h:form>
<rich:extendedDataTable
value="#{bean.list}"
var="item" rows="5" id="table">
<rich:column>
<h:outputLabel value="#{item}" />
</rich:column>
</rich:extendedDataTable>
<a4j:commandButton value="x" immediate="true"
oncomplete="#{rich:component('popupId')}.hide(); return false;"/>
</h:form>
</rich:popupPanel>
<h:form>
<a4j:commandButton value="show"
oncomplete="#{rich:component('popupId')}.show(); return false;"
render="table" immediate="true" />
</h:form>
时效果很好,但是当我使用show
按钮关闭面板并再次按下X
按钮时,会出现show
空(它呈现但显示为空,见下图)。
如果我在extendedDataTable
之前添加空extendedDataTable
,问题就解决了,就像这样:
popup
<rich:extendedDataTable />
<rich:popupPanel>
...
问题无法解决,但我需要rich:dataTable
。
aditional extrange行为是当我调整浏览器大小时,数据会出现。
平台
干杯
答案 0 :(得分:2)
使用onclick
代替oncomplete
。 ExtendedDataTable
无法在隐形元素中正确呈现(这是一个错误),因此必须在重新渲染之前使popupPanel
可见。
答案 1 :(得分:1)
我有同样的问题。
我用一种不是100%丰富的正确方式解决了它:
<a4j:commandButton
value="show"
action="#{actionForm.setShowEditor('true')}"
oncomplete="javascript:location.reload(true)"/>
<a4j:region layout="block" rendered="#{actionForm.showEditor}" id="panelArea">
<rich:popupPanel id="#{popupID}" modal="true" show="true" domElementAttachment="parent">
....
tabel
buttons
....
</rich:popupPanel>
</a4j:region>
a4j:区域内始终显示弹出窗口(show =“true”)。 但是只有变量才能显示a4j:区域以显示popup = true。
我需要整页刷新,否则我的ckeditor会出现一些初始化错误。如果您在设置“#{actionForm.setShowEditor('true')}后仅重新呈现a4j:区域,它也应该有用。