p: обновление командной кнопки не работает

Я просмотрел форумы и знаю, как генерация идентификаторов HTML-DOM-Elements работает с NamingContainers и без них. Тем не менее, в этом коде я пытаюсь поместить командную кнопку на одну сторону страницы, которая должна вызвать обновление другой стороны страницы.

«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>

I already tried to update different components (:wbManageForm, :wbManageForm:tabText, :wbManageForm:tabView:treetable) but none of them was updated...

Я использую Праймфейс 3.5.

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


person user3178676    schedule 09.01.2014    source источник
comment
Какова цель наличия двух форм? Вы можете иметь только один и обновить его с помощью @form. Ваш ui:composition тоже внутри формы?   -  person    schedule 09.01.2014
comment
Вы пытались обновить @all? Также взгляните на этот ответ BalusC: stackoverflow.com/questions/4474789/   -  person Pellizon    schedule 09.01.2014
comment
Я пробовал все, но это все еще не работает. Я свернул свой код, чтобы лучше показать проблему, и снова задал вопрос здесь: не работает"> stackoverflow.com/questions/21044983/   -  person user3178676    schedule 10.01.2014


Ответы (1)


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

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

person VulfCompressor    schedule 09.01.2014
comment
Я пробовал все, но это все еще не работает. Я свернул свой код, чтобы лучше показать проблему, и снова задал вопрос здесь: не работает"> stackoverflow.com/questions/21044983/ - person user3178676; 10.01.2014