2015-07-20 6 views
0

Мой сценарий - отображать сообщения из списка один за другим в модальном всплывающем окне. Список будет состоять из пользовательского объекта, который имеет три поля: «Сообщения», «BgColor» и «TextColor». Модальное всплывающее окно будет иметь одну кнопку «СЛЕДУЮЩИЙ», и при нажатии этой кнопки отображаются всплывающие сообщения и сообщение будет отображаться в соответствующем цвете фона и цвете текста.Не удалось закрыть модальное всплывающее окно

Main.xhtml

<rich:popupPanel id="popupOne" modal="true" rendered="#{demoBean.isTrue}"> 
    <a4j:outputPanel id="popupTwo" > 
     <ui:include id="PackStation_OrderNote_Popup" src="/MyXhtml.xhtml"> 
     <ui:param id="backcolor" name="backcolor" value="#{demoBean.bgColor}"/> 
     <ui:param id="textcolor" name="textcolor" value="#{demoBean.textColor}"/> 
     </ui:include> 
    </a4j:outputPanel> 
    </rich:popupPanel> 

MyXhtml.xhtml

<a4j:outputPanel id="panelone" > 
    <h:outputText id="errorMsg" name="errorMsg" class="pop_outputText" value="#{demoBean.messages}" /> 
        <a4j:commandButton id ="btnOne" 
             action="#{demoBean.continueMsgSequenece}" 
             value="next" 
             reRender="popupOne" 
             oncomplete="closePOPUP('#{demoBean.messages}');">  
        </a4j:commandButton> 
    </a4j:outputPanel> 

функция Javascript

function closePOPUP(msg) 
       { 
        if(msg==""){ 
         //code to close modal popup 
         UI8Layout.doDialogCloseById('popupOne'); 
        } 
       } 

если я ставлю "popupOne" в оказанной атрибут a4j: CommandButton из myXhtml.xhtml. Цвет фона и цвет текста меняются, и сообщения появляются, когда я нажимаю кнопку «ВЕРХНИЙ», как ожидалось, в модальном всплытии, но при нажатии «следующая кнопка» модальное всплывающее окно не закрывается, когда заканчиваются сообщения.

И если я поместил «popupTwo» в визуализированный атрибут a4j: commandButton из myXhtml.xhtml. Цвет фона и цвет текста не изменяются в модальном всплытии, но при нажатии «следующая кнопка» модальные всплывающие окна закрываются, когда заканчиваются сообщения.

Мне нужно отображать сообщения с цветом фона и цветом текста, а модальные всплывающие окна должны закрываться, когда сообщения заканчиваются.

Сообщения поступают в последовательности, как ожидалось.

Это моя реализация неправильно или есть что-то, с чем мне приходится иметь дело?

Примечание: моя функция Javascript не закрывает модальные всплывающие окна в первом случае, но закрывает модальные всплывающие окна во втором случае, когда сообщение заканчивается.

+0

я прочитал некоторые где что a4j: CommandButton и OnComplete показывает некоторое странное поведение, однако навигации или когда a4j: commandButton помещается внутри панели Ajax. может кто-нибудь через какой-то свет на него? и как работает a4j: commandButton? –

ответ

0

Правильный атрибут для рендеринга в RF 4 равен render. И включение идентификаторов в атрибут «rendered» ничего не поможет.

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

<rich:popupPanel show="#{not empty demoBean.messages}" … > 
+0

Вы имели в виду атрибут a4j: commandbutton reRender sholud, который должен быть заменен рендером? но все же он не ворует. –

+0

мы используем JSF 2 и Rich Faces 3 –

+1

Ваш код не предлагает так, 'rich: popupPanel' не является компонентом в RichFaces 3. – Makhiel