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

Struts 1 Java Discussion :

[Struts-Layout][treeview] mettre un element en evidence


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Par défaut [Struts-Layout][treeview] mettre un element en evidence
    Bonjour,

    J'aimerais savoir comment mettre en evidence un element selectionne dans
    un treview (dans strutslayout); lorsque je clique sur celui-ci.

    Merci d'avance

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Le contenu de ton treeview est-il défini dans une jsp ou dans une Action ?

  3. #3
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Par défaut
    Dans une action.

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tu peux par exemple passer en paramètre de chacune des Actions qui s'exécute lors d'un clic sur un des noeuds du treeview le nom du noeud.
    Ensuite, il faut tester si le nom du noeud est bien égal à celui sur lequel on a cliqué et dans ce cas appliquer un style pour changer la couleur.
    Ceci implique bien sûr de re-éxecuter le code qui constitue le treeview à chaque clic sur un noeud :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String noeudSelecte = request.getParameter("noeudSelecte") ;
    ...
    MenuComponent menuComponent = new MenuComponent() ;
    String title = "titreDuNoeud1" ;
    menuComponent.setTitle(title) ;
    menuComponent.setLocation("pathAction.do?noeudSelecte="+title) ;
    if ( title.equals(noeudSelecte))
    {
       menuComponent.setStyle("background-color: blue;") ;
    }
    ...
    A voir si tu peux l'adapter à ton cas.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Par défaut
    Merci pour le truc ça marche bien.

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Ci-dessous une solution sans avoir besoin de re-éxécuter le code qui constitue le treeview, donc sans aller/retour serveur.

    Dans l'Action, il faut utiliser la méthode setOnClick pour permettre l'appel d'un script Javascript qui modifie la couleur du background du noeud sur lequel on a cliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menuComponent.setOnClick("javascript:setColor(this,'blue')") ;
    et dans la jsp, ajouter les fonctions Javascript suivantes (grandement inspirées d'un exemple donné dans l'appli de demo NewsReader de Struts-Layout) :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <script>
       function setColor(row, color)
       {
    	var parent = row.parentNode.parentNode;
    	var oldRow;
    	if (parent.stdLayoutOldRow)
    	{
    		oldRow = parent.stdLayoutOldRow;	
    	}
    	var elements = row.childNodes;
     
    	setCellColor(elements, color);
     
    	if (oldRow && oldRow!=row)
    	{
    		elements = oldRow.childNodes;
    		setCellColor(elements, "");
    	}
     
    	parent.stdLayoutOldRow = row;
       }
       function setCellColor(elements, color)
       {
    	for (i=0; i < elements.length; i++)
    	{
    		if (elements[i].nodeName=="a" || elements[i].nodeName=="A")
    		{
    			elements[i].style.backgroundColor = color;
    		}
    	}
       }	
    </script>
    Merci à OButterlin de m'avoir aiguillé sur le setOnClick et pour le petit coup de pouce en Javascript.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [struts layout]treeview et action
    Par david06600 dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/11/2006, 17h17
  2. Réponses: 1
    Dernier message: 26/10/2006, 17h44
  3. [Struts-Layout] treeview et message resources
    Par Calahad dans le forum Struts 1
    Réponses: 12
    Dernier message: 02/10/2006, 10h01
  4. [Struts layout] Treeview
    Par Varroux dans le forum Struts 1
    Réponses: 4
    Dernier message: 11/07/2006, 12h01
  5. [STRUTS-LAYOUT] Treeview
    Par DarkWark dans le forum Struts 1
    Réponses: 13
    Dernier message: 29/03/2006, 22h51

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