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

ASP.NET Discussion :

[2.0] Sélectionner un TreeNode sans faire de PostBack


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 67
    Par défaut [2.0] Sélectionner un TreeNode sans faire de PostBack
    Salut les gars !

    J'utilise un TreeView 2.0.
    Lors de la séléction d'un Noeud, la page envoie un PostBack, qui n'est pas nécessaire et j'aimerai pouvoir selectionner un noeud sans faire de PostBack.

    Alors j'ai essayé :
    *
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Node.NavigateUrl = "Javascript:Void(0)"
    Sa marche le Noeud n'envoie plus de PostBack, mais je n'arrive plus a le selectionner.
    Car plus loin dans mon code quand je fais :
    TreeView.SelectedNode, il me renvoie Null (Pour les amis du C#) ou Nothing (pour les Amis du VB).

    *
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Node.SelectAction = TreeNodeSelectAction.None
    N'envoie pas de PostBack mais je ne peut pas non plus selectionner le Noeud voulut.

    Alors comment puis-je faire pour Selectionner un noeud sans faire de PostBack ?

    Merci

    PS: J'ai vu dans pas mal de sites, que la solution consisterait à faire un code javascript inclus dans la page, mais aucun des sites que j'ai vu ne proposaient un code fiable

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 67
    Par défaut
    C'est bon les gars, j'ai trouver la réponse (Merci a pushp_aspnet).

    Il suffit de mettre tout les noeuds

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Node.NavigateUrl = "javascript:void(0);"
    Puis dans le head du .aspx
    Mettre
    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
     
    <script type="text/javascript"> 
     
            window.onload = function()
            {
                 var treeview = document.getElementById("<%=Trv.ClientID %>"); //use your treeview id instead of Trv
                 var treeLinks = treeview.getElementsByTagName("a");
                 for(i=0;i<treeLinks.length;i++)
                 {
                      if(treeLinks[i].firstChild.tagName != "IMG")
                      {
                        treeLinks[i].onclick =function(){
                        TreeView_SelectNode(<%=Trv.ClientID %>_Data,this,this.id.toString());
                        }
                      }
                  }
            }
     
            </script>

    Merci

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 67
    Par défaut
    J'ai optimiser le code du javascript pour qu'il deselectionne un noeud quand on selectionne un autre.

    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
    33
    34
    35
    36
    37
    38
    39
     
    	 	<script type="text/javascript"> 
     
    	 	var previousSelectedNode = null; //element global
     
            window.onload = function()
            {
                 var treeview = document.getElementById("<%=Trv.ClientID %>"); 
                 var treeLinks = treeview.getElementsByTagName("a");
                 for(i=0;i<treeLinks.length;i++)
                 {
                      if(treeLinks[i].firstChild.tagName != "IMG")
                      {
                        treeLinks[i].onclick =function()
                        {
                            if(previousSelectedNode == null) //first time node clicked
                            {
                               previousSelectedNode = this;
                            }
                            else  //deselect previous node
                            {
                                previousSelectedNode.className = "nodeNotSelected";
                                previousSelectedNode = this;
                            }
                            TreeView_SelectNode(<%=Trv.ClientID %>_Data,this,this.id.toString());
     
                            this.className = "nodeSelected";   //setting the style for currently selected node
                        }
                      }
                  }
            }
     
            </script>
     
     
        <style>
    .nodeSelected{text-decoration:none;background-color:#C5C2B8;BorderStyle=Solid;BorderWidth:1px;}
         .nodeNotSelected{text-decoration:none;background-color:none;}
        </style>

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

Discussions similaires

  1. [OUTILS] Flash sans faire du flash...
    Par Titouf dans le forum EDI/Outils
    Réponses: 7
    Dernier message: 02/03/2006, 22h48
  2. vba excel - Comment saisir une cellule sans faire entrer
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/11/2005, 17h50
  3. Executer barre de taches sans faire click droit
    Par kikica dans le forum Autres Logiciels
    Réponses: 15
    Dernier message: 11/08/2005, 12h59
  4. Réponses: 3
    Dernier message: 08/08/2005, 11h24

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