Богатая модалпанель закрывается автоматически - PullRequest
2 голосов
/ 08 ноября 2010

Я сталкиваюсь с той же проблемой, что и здесь. Rich modalpanel закрывается автоматически

Я использую richfaces 3.3.0 (включено в шов 2.12).Я попытался изолировать проблему, Firebug показывает, что после появления модальной панели генерируется запрос к серверу.И панель закрывается через несколько мс.Я обработал несколько мест для тега rich_modalPanel (внутри формы снаружи).

Есть идеи?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a="http://richfaces.org/a4j"
    xmlns:s="http://jboss.com/products/seam/taglib">
<head />
<body id="pgHome">
<f:view>
    <div id="document">
        <h:form id="login">
        <fieldset>
            <h:outputLabel id="UsernameLabel" for="username">Login Name</h:outputLabel>
            <h:inputText id="username" value="#{identity.username}" style="width: 175px;" />
        </fieldset>
        <h:commandButton id="search2" value="modal"
            onclick="#{rich:component('mp')}.show()" />

        </h:form> 
        <rich:modalPanel id="mp" height="200" width="500">
            <f:facet name="header">
                <h:outputText value="Modal Panel Title" />
            </f:facet>
        </rich:modalPanel>
    </div>
</f:view>
</body>
</html>

РЕДАКТИРОВАТЬ:

Я наконец-то использовал этот пример:

<rich:modalPanel id="modalPanelID">
    <f:facet name="header">
        <h:outputText value="header" />
    </f:facet>
    <a onclick="Richfaces.hideModalPanel('modalPanelID');" href="#">Hide</a>
</rich:modalPanel>
<a onclick="Richfaces.showModalPanel('modalPanelID');" href="#">Show</a>

Ответы [ 4 ]

8 голосов
/ 09 ноября 2010

Это нормальное поведение, так как вы отображаете ModalPanel с помощью кнопки command, используя следующий код:

<h:commandButton id="search2" value="modal" onclick="#{rich:component('mp')}.show()" />

commandButton отобразит ModalPanel, а , затем отправит форму. Это заставит страницу полностью перерисовываться, и именно поэтому вы получаете такое поведение.

Чтобы решить вашу проблему, вы должны return false; в конце события onclick, которое можно перевести на Показать модальную панель и затем остановить любую обработку, т.е. НЕ отправлять форму, Код для использования следующий:

<h:commandButton id="search2" value="modal" onclick="#{rich:component('mp')}.show(); return false;" />
2 голосов
/ 09 ноября 2010

Попробуйте использовать <a4j:commandButton> вместо <h:commandButton>.

Но поскольку у вас просто onclick, вам вообще не нужен commandButton - используйте <input type="button" onclick=".." />

1 голос
/ 08 ноября 2010

Я предполагаю, что, поскольку вы используете h:commandButton, вы публикуете форму, и если это не то, что вы хотите сделать, то это проблема.

По крайней мере, заставить кнопку возвращать false, чтобы онане публикует или не использует обычную кнопку HTML.

0 голосов
/ 04 ноября 2013

У меня странная проблема. Я использую команду Button для загрузки файла. Использование onClick-Event запускает событие, не нажимая на загрузку страницы. Если я использую действие, моя модальная панель скрывается автоматически. После нажатия кнопки «Command» модальная панель должна оставаться открытой. Мне нужно отправить форму для обработки загруженных данных в bean-компоненте.

Вот мой код ...

<h:commandButton id="Button"
    process="@this,attachmentPanel"
    binding="#{actionButton}"
    value="#{messages['view.attachment.add']}"
    action="#{myHandler.addAttachment()}"
    reRender="attachmentFramePanel">
</h:commandButton>
...