Я искал через форумы и знаю, как генерация HTML-DOM-элементов работает с NamingContainers и без них. Тем не менее, в этом коде я пытаюсь поместить командную кнопку в одну сторону страницы, которая должна инициировать обновление другой стороны страницы.p: commandbutton update не работает
«viewWorkbenchButton» запускает свое действие правильно, а данные бэкэнда - в порядке. Но: wbManageForm: wbMgmtPanel не обновляется.
<ui:composition xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<f:view>
<p:panel id="dataGridPanel">
<p:panelGrid id="dataGridPanelGrid" styleClass="pGrid" columns="2"
columnClasses="alignTop, alignTop">
<p:column>
<h:form id="wbSelectForm">
<p:panel styleClass="noBorderPanel">
<p:dataTable var="workbench"
value="#{WorkbenchControllerBean.myWorkbenches}"
paginator="#{WorkbenchControllerBean.myWorkbenches.size() > 10}"
rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}">
<f:facet name="header">
My Workbenches
</f:facet>
<p:column headerText="Id" sortBy="#{workbench.workbenchId}">
<h:outputText value="#{workbench.workbenchId}" />
</p:column>
<p:column headerText="Name" sortBy="#{workbench.name}">
<h:outputText value="#{workbench.name}" />
</p:column>
<p:column headerText="Actions">
<p:commandButton id="viewWorkbenchButton" icon="ui-icon-show"
title="View Workbench" update=":wbManageForm:wbMgmtPanel"
actionListener="#{WorkbenchControllerBean.viewWorkbench(workbench)}">
</p:commandButton>
</p:column>
</p:dataTable>
</p:panel>
</h:form>
</p:column>
<p:column>
<h:form id="wbManageForm">
<p:panel id="wbMgmtPanel" styleClass="noBorderPanel">
<h:outputText id="tabText" value="Active Wb: #{WorkbenchControllerBean.number}" />
<p:tabView id="tabView">
....
</p:tabView>
</p:panel>
</h:form>
</p:column>
</p:panelGrid>
</p:panel>
</f:view>
Я уже пытался обновить различные компоненты (:wbManageForm
, :wbManageForm:tabText
, :wbManageForm:tabView:treetable
), но ни один из них не был обновлен ...
Я использую Primefaces 3.5.
Что мне здесь не хватает? Заранее большое спасибо!
Какова цель иметь две формы? У вас может быть только один и обновить его с помощью '@ form'. Является ли ваш 'ui: состав' внутри формы тоже? –
Вы пытались обновить '@ all'? Кроме того, посмотрите на этот ответ BalusC: http://stackoverflow.com/questions/4474789/jsfprimefaces-ajax-update-of-several-elements-by-ids – Pellizon
Я пробовал все, но он все еще не работает. Я минимизировал свой код, чтобы лучше показать проблему и снова спросил здесь: http://stackoverflow.com/questions/21044983/primefaces-commandbutton-update-does-not-work – user3178676