2011-07-08 6 views
0

J'utilise un extendedDataTable de Richfaces 4. Je souhaite afficher une page de détails pour l'élément d'une ligne lorsque l'utilisateur clique dessus. Par conséquent j'ai ajouté quelque chose commeColonne Cliquez sur Rich Faces 4

onrowclick="showDetails(#{item.id})" 

à la table. Cela déclenche une balise <a4j:jsFunction/> correspondante. Cela fonctionne jusqu'à présent.

Cependant, l'une des colonnes comporte une commandeConnection (pour passer à une vue d'édition des détails). Le lien fonctionne dans les navigateurs Web (Chrome/Safari). Mais IE et firefox n'exécutent que l'onclick sur la ligne. Le lien de commande ne fonctionne pas ici.

Est-il en quelque sorte possible de définir uniquement un oncolumnclick ou les colonnes, qui ne contiennent pas le lien de commande? Je n'ai pas trouvé un moyen d'ajouter un onclick-handler à des colonnes spécifiques (j'utilise rich: column pour les colonnes.)

Ou y a-t-il une meilleure façon/propre/plus agréable d'obtenir le "click quelque part dans le ligne pour afficher les détails, cliquez sur le lien dans la dernière colonne pour afficher la vue d'édition "- comportement que je suis après?

Répondre

0

Ma solution actuelle HACK est de ne pas utiliser le onrowclick mais ajouter un styleClass="clickable" à toutes mes colonnes sauf celui avec le lien. Dans la première colonne, j'ajouté ce qui suit:

<h:outputText value="#{item.id}" style="display: none;" styleClass="id"/> 

Puis, après la table, j'utiliser les éléments suivants jQuery:

<rich:jQuery selector=".myTable td.clickable" query="live('click', function(event) { 
       showDetails($(this).parent().children().children('.id').text()); 
       });"/> 

Je n'aime pas vraiment cette solution, mais il fonctionne bien jusqu'à présent .

Je suis toujours ouvert pour de meilleures solutions si :)

0

Essayez de mettre dans votre commandButton

onclick="Event.stop(event||window.event)" 
+0

Ne fonctionne pas. Le bouton affiche une animation clic, mais l'onclick du tr gagne. –

Questions connexes