2011-08-01 31 views
5

Parece que tengo un problema cuando tengo un a4j: commandLink en un panel popupPanel enriquecido pero la acción no se está ejecutando. El XHTML es el siguiente:Richfaces 4 a4j: acción de commandLink que no se activa en rich: popupPanel

<rich:popupPanel id="rate-panel" modal="true" height="444" width="780" top="60" show="false" onmaskclick="#{rich:component('rate-panel')}.hide()" styleClass="cs-modal"> 
    /**Some html here**/  
    <a4j:commandLink immediate="false" action="#{venueScore.up}" render="rate-panel" styleClass="rate love"> 
    <span>Love it</span> 
    </a4j:commandLink>  
    /**Some more html here**/  
</rich:popupPanel> 

Y el bean administrado se ve de la siguiente manera:

@Named("venueScore") 
@ViewScoped 
public class VenueScoreManager extends BaseManager implements Serializable { 
    public void up() { 
    System.out.println("TEST"); 
    //Do something 
    } 
} 

he hecho el bean gestionado @ViewScoped.

También he intentado agregar un <h:form> alrededor del comandoEnlace, sin embargo, esto lo hace incluso menos que sin él. De hecho, creo que es porque el commandLink está dentro del <h:form> en el que se encuentra el enlace que abrió el popupPanel.

De todos modos, ¿puede alguien indicarme por qué la acción no se dispara?

Respuesta

8

Ok, así que lo arreglé yo mismo. Después de joder, pensé que solo tenía que agregar un <a4j:region> alrededor del contenido en el <rich:popupPanel>. Así que ahora el XHTML es como la siguiente:

<rich:popupPanel id="rate-panel" modal="true" height="444" width="780" top="60" show="false" onmaskclick="#{rich:component('rate-panel')}.hide()" styleClass="cs-modal"> 
    <a4j:region id="panel-region"> 
    /**Some html here**/  
    <a4j:commandLink immediate="false" action="#{venueScore.up}" render="panel-region" styleClass="rate love"> 
     <span>Love it</span> 
    </a4j:commandLink>  
    /**Some more html here**/  
    </a4j:region> 
</rich:popupPanel> 
+0

¡No puede creer cuánto tiempo he invertido tratando de encontrar esta respuesta! ¿Cómo llegaste a esta solución? –

+0

@ AmrH.AbdelMajeed - Probablemente haya pasado tanto tiempo como usted. Prueba y error al final, creo que lo resolvió;) –

+0

Omg gracias! :-RE – Gatekeeper

0

Sé que es una vieja pregunta, pero como yo tenía exactamente el mismo problema, que pasó mucho tiempo antes de fijarla, tal vez va a ayudar a alguien más. Primero, probé la solución propuesta anteriormente, pero no funcionó. Por último, me encontré con este tema: Issues closing rich:popupPanel via show condition, RF 4.0

Y añadí el atributo DOMElement a mi emergente:

<rich:popupPanel 
id="newMailPopup" 
**domElementAttachment="form"** 
...> 

Y ahora, mi a4j: commandLink funciona perfectamente :-)

0

tuve la mismo problema, a4j: commandLink solo funcionó después del primer clic .... ponga el panel de información dentro de un formulario y agregue domElementAttachment ...

<h:form id="myform"> 
    <rich:popupPanel id="pop" domElementAttachment="form"> 
     ... 
     <a4j:commandLink /> 
     ... 
    </rich:popupPanel> 
</h:form> 
Cuestiones relacionadas