单击后重新渲染组件

时间:2014-03-19 06:36:44

标签: jsf primefaces

我正在使用primefaces组件进行UI开发。我无法理解如何通过ajax重新渲染部分。

  1. 当我点击提交按钮时,表单应隐藏<p:outputLabel/>并显示<p:dataTable> .

  2. 在网页加载时,它应仅显示outputLabel并隐藏dataTable

  3. 请帮助

2 个答案:

答案 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肯定会。