IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Taglibs Java Discussion :

JavaScript dans DisplayTag


Sujet :

Taglibs Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 118
    Points : 47
    Points
    47
    Par défaut JavaScript dans DisplayTag
    Bonjour à tous

    J'ai établis un displayTag dans ma JSP mais je souhaiterai, sur l'une des colonnes, pouvoir faire apparaitre un message de confirmation en javascript (avant une suppression en fait). Je pensais donc pouvoir ajouter onclik sur la colonne mais cela ne passe pas. J'ai essayé avec le href, il me renvoi "only absolute URLs or full path URIs are allowed".

    Est il possible d'apeller une fonction javascript depuis une colonne du displayTag?

    Merci d'avance

  2. #2
    Membre régulier Avatar de VinceFromBcn
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    Salut,

    Tu affiches quoi dans la colonne ? un lien, un input ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 118
    Points : 47
    Points
    47
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%
     
    PortletHref mergephref = new PortletHref(renderRequest, renderResponse);
    mergephref.setAction(false);
    mergephref.addParameter("action", "mergeQuizz");
    mergephref.addParameter("id", new Long(161));
     
    %>
     
    	<display:column property="quzTitre" title="Titre" class="titreQuizz" sortable="true" href="<%=phref.toString()%>"/>
    	<display:column title="Supprimer" class="dateQuizz" href="<%=deletephref.toString()%>">Supprimer</display:column>
    Voici mon code. En fait je place un lien Portlet sur chaque ligne de ma colonne "supprimer".

    D'ailleurs, j'en profite pour dire aussi que je ne sais pas comment récupérer l'ID courant dans mon display pour le passer en paramètre. Ici je le rentre en dur grâce à new Long(161). Une idée?

    Merci d'avance

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    pourquoi n'utilises-tu pas un decorator?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <display:table ... decorator="monpackage.QuizzTableauDecorator">
    	<display:column property="quzTitre" title="Titre" class="titreQuizz" sortable="true" />
    	<display:column title="Supprimer" class="dateQuizz">Supprimer</display:column>
    </display:table>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class QuizzTableauDecorator extends TableDecorator {
    public String getQuzTitre() {
    Quizz quizz = (Quizz) this.getCurrentRowObject();
    PortletHref mergephref = new PortletHref(getPageContext().getRequest(), getPageContext().getResponse());
    mergephref.setAction(false);
    mergephref.addParameter("action", "mergeQuizz");
    mergephref.addParameter("id", new Long(quizz.getId()));
    StringBuffer sb = new StringBuffer();
    sb.append("<a href=\"").append(mergephref.toString()).append("\" class=\"titreQuizz\">").append("Titre").append("</a>");
    }
    public String getSupprimer() {
    Quizz quizz = (Quizz) this.getCurrentRowObject();
    PortletHref mergephref = new PortletHref(getPageContext().getRequest(), getPageContext().getResponse());
    mergephref.setAction(false);
    mergephref.addParameter("action", "mergeQuizz");
    mergephref.addParameter("id", new Long(quizz.getId()));
    StringBuffer sb = new StringBuffer();
    sb.append("<a href=\"").append(mergephref.toString()).append("\" class=\"dateQuizz\">).append("Supprimer").append("</a>");
    }
    }
    pour l'appel du décorator sur la colonne "supprimer"... tu peux tester 2 solutions :
    1) ajouter l'attribut property="supprimer".
    2) si ça ne fonctionne pas, configurer un decorator pour cette colonne en ajoutant l'attribut decorator="monpackage.SupprimerDecorator" et en codant :
    The fully qualified class name of a class that should be used to "decorate" the underlying object being displayed. The class should implement org.displaytag.decorator.ColumnDecorator. If a decorator is specified for the entire table, then this decorator will decorate that decorator.
    cf. displaytag:column et displaytag-decorator

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 118
    Points : 47
    Points
    47
    Par défaut
    J'ai bien tenté ta solution mattheox. J'obtiens l'adresse de ma JSP en dur sur mon navigateur mais je ne sais pas comment l'exploiter dans mes portlets...

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    c'est à toi d'adapter ton code pour construire la bonne url...
    quelle est l'url vers laquelle tu souhaites que l'application aille quand l'utilisateur clique sur le lien?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 118
    Points : 47
    Points
    47
    Par défaut
    Ben comme dans le code que j'ai fourni, une URL de type action mergeQuizz pour laquelle je passe un parametre id= l'id courant du displaytag..

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    l'url que tu souhaites appeler est du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://monserveur:monport/context/rep1/rep2/.../repn?action=mergeQuizz&id=45
    comment est cette url par rapport au contexte courant?
    peux-tu mettre une url relative? absolue?
    quel est le chemin de l'url... jusqu'à l'action?=> c'est quoi les valeurs de rep[i]
    est-ce constant? variable?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 118
    Points : 47
    Points
    47
    Par défaut
    Merci mattheox. La solution du decorator fonctionne parfaitement. Et c'est bien plus propre!

  10. #10
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 246
    Points
    246
    Par défaut
    a mon avis il suffisait juste de sortir le href du display:column mais vu qu'avec le decorator ça marche je met juste ça a titre informatif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <display:column title="Supprimer" class="dateQuizz" ><a href="<%=deletephref.toString()%>"Supprimer</a></display:column>

Discussions similaires

  1. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53
  2. integration varaiables javascript dans du HTML
    Par developpeur_mehdi dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/11/2004, 14h54
  3. Javascript dans un formulaire
    Par MagicManu dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 26/10/2004, 11h25
  4. Réponses: 2
    Dernier message: 08/08/2003, 17h30
  5. [web] insertion javascript dans du perl
    Par laluna dans le forum Web
    Réponses: 3
    Dernier message: 28/07/2003, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo