我试图更新任何表单之外的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>
答案 0 :(得分:0)
如果tabView中的rendered
评估为false,则不会呈现tabView,也不能成为update=
的目标。
您可以在tabView周围添加<h:panelGroup id="updater"
并使用update="updater"