2014-02-19 145 views
0

我需要一個rich:popup,顯示了rich:extendedDataTable,並且當用戶按下一個按鈕時,popup應顯示,和extendedDataTable必須重新渲染,這裏是代碼:渲染豐富: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顯示爲空(它已呈現,但顯示爲空,請參見下圖)。如果我的popup前添加一個空extendedDataTable,這樣

Flow

的問題是固定的:

<rich:extendedDataTable /> 
<rich:popupPanel> 
    ... 

隨着rich:dataTable問題不退出,但我需要一個extendedDataTable

並且adictal extrange行爲是當我調整瀏覽器的大小時,數據出現。

平臺

  • 的RichFaces:4.2.2.Final
  • 春:3.1.1.RELEASE

乾杯

+0

您是否嘗試過將所有內容都放入一個''? – Makhiel

+0

@Makhiel這個問題一直存在於一個全局形式中,而且我需要兩種形式,'show'按鈕是非常嵌套的) –

+0

可能是RichFaces中的一個bug,'extendedDataTable'對可見性很敏感(這就是爲什麼數據出現在resize中),所以也許你可以彈出「always open」只需將其重新放置在屏幕外('position:absolute;左:-2000px;')? – mabi

回答

2

使用onclick,而不是oncompleteExtendedDataTable不可見元素裏面正常顯示(這是。一個bug),所以popupPanel必須在rerendering之前變得可見。

1

我還挺有同樣的問題。

我解決它在沒有100%richface正確的方法:始終顯示

<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內部:區域。 但是a4j:區域僅在變量顯示popup = true時才顯示。

整個頁面刷新在我的情況需要,因爲否則我的ckeditor有一些初始化錯誤。還應該工作,如果你只是重新呈現在A4J:區域後您將「#{actionForm.setShowEditor(‘真正’)}

+0

這不會重新呈現該頁面,從而再次「關閉」彈出窗口? – mabi

+0

是的,它的確如此。我在這裏提供的解決方案有點含糊。將完整的解決方案添加到文章 –

+0

重點是:這會在彈出窗口中重新渲染* everything *,這可能不是所期望的。 – mabi