Диалоговое окно Primefaces - показать его условно.код JavaScript не работает - PullRequest
1 голос
/ 02 сентября 2011

Я хочу показать диалоговое окно по щелчку кнопки командной строки.Перед диалоговым окном мне нужно проверить условность.

Я использую веб-поток Spring 2.3.0.

Итак, я делаю это так,

И диалоговое окно

Яне удалось показать это диалоговое окно на основе этого условия.

Помогите, пожалуйста, какие-нибудь указатели?

SWF 2.3.0 Primefaces 2.2.1 JSF 2 Spring Security 3 Spring 3.1.0M1I EhCache Apache Tomcat 6.0 STS 2.5.1

Итак, я изменил свой код, как показано ниже

                    <p:commandLink id="addRequest" immediate="true" value="addreq"
                    oncomplete="dlg3.show()" update="dialogPanel">
                    <f:setPropertyActionListener
                        value="#{searchHandler.selectedAccIns}"
                        target="#{reqSearchHandler.checkAccStatus}" />
                </p:commandLink>

И диалоговое окно имеет вид

                <p:outputPanel id="dialogPanel"
                rendered="#{not reqSearchHandler.accStatusFlag}">
                <p:dialog header="Effect Dialog" widgetVar="dlg3"
                    showEffect="bounce" hideEffect="explode" height="200">
                    <h:outputText
                        value="Account is #{searchHandler.selectedAccIns.accStatusDesc}" />
                    <h:outputText value="Do you want to continue?" />
                    <div align="left">
                        <p:commandButton value="Yes" action="accept" />
                        <p:spacer width="960" height="5" />
                        <p:commandButton value="No" action="cancel" />
                    </div>
                </p:dialog>
            </p:outputPanel>

Но когда я нажимаю на ссылку команды, яполучить 3 диалоговых окна.Подскажите, пожалуйста, почему это так?

1 Ответ

1 голос
/ 02 сентября 2011

Кто-то только что опубликовал ту же проблему!:)

Вы должны использовать атрибут oncomplete вместо onclick commandButton.Событие click javascript происходит до того, как страница отправляется обратно, что может привести к тому, что ваше диалоговое окно не появится из-за перезагрузки страницы.

oncomplete="dlg3.show()" отобразит диалоговое окно ПОСЛЕ обратной передачи.

...