2011-02-07 16 views
5

Quiero renderizar con Richfaces un menú contextual con un clic izquierdo sobre un texto que aparece en un enlace (texto azul, subrayado y cursor onmouseover). Por lo tanto, imagine un enlace que al hacer clic muestra un menú contextual. Tenga en cuenta que no me importa si el texto es realmente un enlace, solo quiero que aparezca como un enlace. Entonces, incluso el texto normal estaría bien, lo haría aparecer como un enlace usando CSS.Richfaces: texto similar a un enlace con ContextMenu

que tienen las siguientes condiciones:

  • El menú de contexto debe aparecer en el lado del cliente, sin hacer una petición.
  • El menú contextual debe aparecer utilizando un rich:componentControl (estos "enlaces") están dentro de una tabla de datos, por lo que el mismo rich:contextMenu se debe reutilizar.

todavía no he encontrado una solución satisfactoria, ya que cada enfoque que he probado ha causado un problema para mí:

  1. Si uso h:outputText (que sería lo ideal), No puedo adjuntar en él a rich:componentControl (supongo porque no puede activar un evento onclick).
  2. Si uso a4j:commandLink, aunque I puede adjuntar un rich:componentControl, realiza una solicitud de servidor. Traté de agregar onclick="return false;" para evitar la solicitud, pero Richfaces agrega el JS generado por el rich:componentControldespués de lo que está dentro del clic, lo que hace que este código no se alcance y, por supuesto, el menú contextual no aparezca en absoluto .

¿Hay alguna manera de hacer esto? Por favor, recuerda, no hay solicitud!

Respuesta

2

Puede intentar

<rich:componentControl disableDefault="true" ...> 

Según la documentación con este parámetro debe añadir componentControl return false; sí.

Pero tenga en cuenta de los correspondientes fallos: RF-5607

En la documentación de casos se encuentra que puede utilizar anclas HTML. This answer muestra cómo crear un vínculo con componentControl y sin recargar la página:

<h:outputLink value="#" id="link" onclick="return false;"> 
    <h:outputText value="Link text"/> 
    <rich:componentControl attachTo="link" for="panel" operation="show" event="onclick"/> 
</h:outputLink> 

El onclick="return false;" impide el ancla de desplazar la página hacia el enlace se hace clic.

+0

Gracias por la respuesta. Configuré el disableDefault = "true", pero lamentablemente la solicitud POST tiene lugar como antes. (+1) –

+0

La respuesta actualizada funciona para mí. –

Cuestiones relacionadas