如何在primefaces中的任何表单之外更新tabView

时间:2018-05-05 23:14:25

标签: jsf primefaces tabs

我试图更新任何表单之外的tabView,因为每个选项卡都有自己的表单,但我也希望在创建父对象之前隐藏所有tabView。

它只在第一次加载表单时起作用,但是一旦加载,我就无法刷新tabView。

我应该添加嵌入表单还是重新加载整个页面?

form.xhtml

<h:form id="frmWork">
    ...
   <p:commandButton id="btnEdit" value="#{msgs.edit}"
                    styleClass="Fright"
                    actionListener="#{workBean.edit()}"
                    update="frmWork tabView"
                    rendered="#{!workBean.editable}"/>
</h:form>
<p:tabView id="tabView" activeIndex="#{workBean.tabIndex}"
           rendered="#{!workBean.editable and workBean.work.id ne null}">
    <p:ajax event="tabChange" listener="#{workBean.onTabChange}"/>
    <p:tab id="tabDelNotes" title="#{msgs.deliverynotes}">
       <ui:include src="work_delNotes.xhtml" />
    </p:tab>
    <p:tab id="tabOrders" title="#{msgs.ord_orders}">
       <ui:include src="work_orders.xhtml" />
    </p:tab>
    <p:tab id="tabTasks" title="#{msgs.tasks}">
       <ui:include src="work_tasks.xhtml" />
    </p:tab>
    <p:tab id="tabContacts" title="#{msgs.contacts}">
       <ui:include src="work_contacts.xhtml"/>
    </p:tab>
</p:tabView>

1 个答案:

答案 0 :(得分:0)

如果tabView中的rendered评估为false,则不会呈现tabView,也不能成为update=的目标。 您可以在tabView周围添加<h:panelGroup id="updater"并使用update="updater"