渲染丰富:extendedDataTable

时间:2014-02-19 12:57:08

标签: jsf richfaces richfaces-modal

我需要显示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空(它呈现但显示为空,见下图)。

Flow

如果我在extendedDataTable之前添加空extendedDataTable,问题就解决了,就像这样:

popup

<rich:extendedDataTable /> <rich:popupPanel> ... 问题无法解决,但我需要rich:dataTable

aditional extrange行为是当我调整浏览器大小时,数据会出现。

平台

  • RichFaces:4.2.2.Final
  • Spring:3.1.1.RELEASE

干杯

2 个答案:

答案 0 :(得分:2)

使用onclick代替oncompleteExtendedDataTable无法在隐形元素中正确呈现(这是一个错误),因此必须在重新渲染之前使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:区域,它也应该有用。