2014-03-19 49 views
0

我正在使用用於UI開發的primefaces組件。我無法理解如何通過ajax執行重新渲染部分。Re單擊後渲染組件

  1. 當我點擊提交按鈕的形式應隱藏<p:outputLabel/>並顯示<p:dataTable> .

  2. 在頁面加載它應該只顯示outputLabel和隱藏dataTable

請幫助

+0

您可以使用簡單的java腳本來設置特定組件的樣式。如'style = display:none' –

+0

有沒有辦法在primefaces本身上做到這一點 –

+1

你可以請分享一些代碼嗎? –

回答

1

更新相應的組件從bean設置新的渲染值後

<p:commandButton value="Submit" actionListener="#{managedBean.function}" 
update="idOfTheComponent idOfTheNextComponent"> 

確保給出的ID是該組件的確切ID,JSF生成(:parentId:childId)如果沒有prependId="false"給出(查看html的情況下有任何疑問)。您也可以使用@form來更新整個表單。

+0

無法正常工作。我已經試過這一個 –

+0

你使用@form ..? – Dileep

+0

是的。我做了所有可能的事情,但仍然無效 –

1

這是針對完全相同問題的other question的複本。發佈多個問題並不能完全解決您的問題。

不過,這段代碼對我來說工作得很好。

XHTML

<p:commandButton value="Submit" action="#{testBean.go()}" update="@form" /> 

<p:dataTable id="table" value="#{testBean.list}" var="item" rendered="#{testBean.showTable}"> 
    <p:outputLabel value="Table" /> 
</p:dataTable> 

<p:outputLabel id="label" value="Label" rendered="#{testBean.showLabel}" /> 

testBean就

public void go() { 
    showTable = !showTable; 
    showLabel = !showLabel; 
} 

只更新DataTable,並outputLabel的ID的不工作,@form絕對不會。