我正在使用primefaces组件进行UI开发。我无法理解如何通过ajax重新渲染部分。
当我点击提交按钮时,表单应隐藏<p:outputLabel/>
并显示<p:dataTable> .
在网页加载时,它应仅显示outputLabel
并隐藏dataTable
。
请帮助
答案 0 :(得分:1)
从bean
设置新的渲染值后更新相应的组件<p:commandButton value="Submit" actionListener="#{managedBean.function}"
update="idOfTheComponent idOfTheNextComponent">
确保给定的id是组件的确切ID,如果没有给出:parentId:childId
,JSF会从父(prependId="false"
)生成id(查看html以防万一任何疑问)。您还可以使用@form
更新整个表单。
答案 1 :(得分: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肯定会。