2014-01-09 8 views
0

Я искал через форумы и знаю, как генерация 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.

Что мне здесь не хватает? Заранее большое спасибо!

+0

Какова цель иметь две формы? У вас может быть только один и обновить его с помощью '@ form'. Является ли ваш 'ui: состав' внутри формы тоже? –

+0

Вы пытались обновить '@ all'? Кроме того, посмотрите на этот ответ BalusC: http://stackoverflow.com/questions/4474789/jsfprimefaces-ajax-update-of-several-elements-by-ids – Pellizon

+0

Я пробовал все, но он все еще не работает. Я минимизировал свой код, чтобы лучше показать проблему и снова спросил здесь: http://stackoverflow.com/questions/21044983/primefaces-commandbutton-update-does-not-work – user3178676

ответ

-2

Попробуйте использовать action вместо actionListener. Также обновите только wbmanageForm. Если это не сработает, попробуйте обновить компонент с помощью метода bean.

Вы можете сделать это, добавив в конце вашего метода: RequestContext.getCurrentInstance().update("wbManageForm");

+0

Я пробовал все, но он по-прежнему не работает. Я минимизировал свой код, чтобы лучше показать проблему и снова спросил здесь: http://stackoverflow.com/questions/21044983/primefaces-commandbutton-update-does-not-work – user3178676

Смежные вопросы