Обновление PrimeFaces - PullRequest
       3

Обновление PrimeFaces

0 голосов
/ 07 декабря 2011

У меня есть база данных со следующим определением:

   <h:form prependId="false">
        <p:dataTable id="instancesTable" lazy="false" paginator="false" var="instance"
                     value="#{panaceaController.instances}">
            <p:column>
                <f:facet name="header">
                    <h:outputText value="Directory"/>
                </f:facet>

                <p:commandLink value="#{instance.directory}" target = "instance.jsf">
                    <f:setPropertyActionListener value="#{instance}" target="#{panaceaController.instance}"/>
                </p:commandLink>
            </p:column>
             <p:column>
                <f:facet name="header">
                    <h:outputText value="Running"/>
                </f:facet>
                <h:outputText value="#{instance.running}"/>
            </p:column>
            <p:column>
                <f:facet name="header">
                    Options
                </f:facet>
                <p:commandLink id="properties_link" async="true" update="propertiesTable" oncomplete="propertiesDialog.show();">
                    <h:graphicImage value="img/properties.png" />
                    <f:setPropertyActionListener value="#{instance}" target="#{panaceaController.instance}"/>
                </p:commandLink>
                <p:tooltip for="properties_link" value="Edit Properties" showEffect="fade" hideEffect="fade" />

                <p:commandLink id="delete" async="true"  onclick="confirmDelete.show();" >
                    <h:graphicImage value="img/edit-delete.png"/>
                    <f:setPropertyActionListener value="#{instance}" target="#{panaceaController.instance}"/>
                </p:commandLink>
                <p:tooltip for="delete" value="Delete This Instance" showEffect="fade" hideEffect="fade" />


                <h:panelGroup rendered="#{!instance.running}">
                <p:commandLink id="start" async="true" action="#{panaceaController.start}" update="messages instancesTable">
                    <h:graphicImage value="img/start.png"/>
                    <f:setPropertyActionListener value="#{instance}" target="#{panaceaController.instance}"/>
                </p:commandLink>
                <p:tooltip for="start" value="Start Instance" showEffect="fade" hideEffect="fade" />
                </h:panelGroup>

                <h:panelGroup rendered="#{instance.running}">
                <p:commandLink id="stop" async="true" action="#{panaceaController.stop}" update="messages instancesTable">
                    <h:graphicImage value="img/stop.png"/>
                    <f:setPropertyActionListener value="#{instance}" target="#{panaceaController.instance}"/>
                </p:commandLink>
                <p:tooltip for="stop" value="Stop Instance" showEffect="fade" hideEffect="fade" />
                </h:panelGroup>
                  <p:commandLink id="probe" async="true" action="#{panaceaController.probe}" update="messages instancesTable">
                    <h:graphicImage value="img/probe.png"/>
                    <f:setPropertyActionListener value="#{instance}" target="#{panaceaController.instance}"/>
                </p:commandLink>
                <p:tooltip for="probe" value="Probe if instance is running" showEffect="fade" hideEffect="fade" />

            </p:column>

        </p:dataTable>
      </h:form>

Команда delete commandLink обновляет таблицу ОК, но другие команды просто не обновляют «instancesTable», даже если они корректно обновляют «сообщения». Я использую простые лица 3.0M3

Может кто-нибудь помочь мне с этим, пожалуйста?

Ответы [ 3 ]

1 голос
/ 08 декабря 2011

Было несколько ошибок, связанных с обновлениями AJAX компонента dataTable для действий, запускаемых внутри компонентов dataTable.Большинство из них должны были быть исправлены в последней версии Primefaces версии 3, однако вы не указали, какую версию Primefaces вы используете.1004 *.По сути, вы бы на стороне клиента вызывали JavaScript, чтобы вручную вызывать событие нажатия на скрытую кнопку вне dataTable.

0 голосов
/ 20 февраля 2014

Просто введите идентификатор компонента, который вы хотите обновить, в командной кнопке обновление = "instancesTable"

0 голосов
/ 26 июня 2013

Я думаю, что вы могли бы попытаться окружить dataTable выходной панелью и присвоить выходной панели styleClass (этот styleClass предназначен только для обновления.), А затем обновляет выходную панель с помощью styleClass, как показано ниже: В моем случае это хорошо работает, но я не уверен, хорошо ли это работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...