我正在使用用於UI開發的primefaces組件。我無法理解如何通過ajax執行重新渲染部分。Re單擊後渲染組件
當我點擊提交按鈕的形式應隱藏
<p:outputLabel/>
並顯示<p:dataTable> .
在頁面加載它應該只顯示
outputLabel
和隱藏dataTable
。
請幫助
我正在使用用於UI開發的primefaces組件。我無法理解如何通過ajax執行重新渲染部分。Re單擊後渲染組件
當我點擊提交按鈕的形式應隱藏<p:outputLabel/>
並顯示<p:dataTable> .
在頁面加載它應該只顯示outputLabel
和隱藏dataTable
。
請幫助
更新相應的組件從bean設置新的渲染值後
<p:commandButton value="Submit" actionListener="#{managedBean.function}"
update="idOfTheComponent idOfTheNextComponent">
確保給出的ID是該組件的確切ID,JSF生成(:parentId:childId
)如果沒有prependId="false"
給出(查看html的情況下有任何疑問)。您也可以使用@form
來更新整個表單。
這是針對完全相同問題的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絕對不會。
您可以使用簡單的java腳本來設置特定組件的樣式。如'style = display:none' –
有沒有辦法在primefaces本身上做到這一點 –
你可以請分享一些代碼嗎? –