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 :

Probl�me SelectedNode Control Treeview


Sujet :

ASP.NET

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par d�faut Probl�me SelectedNode Control Treeview
    Bonjour

    J'ai un probl�me avec un Treeview implant� dans une page web (4 niveaux avec la racine): impossible de g�rer les noeuds s�lectionn�s, d'autre part, il a un comportement que je ne comprends pas : il accepte la s�lection des noeuds de niveaux 3, mais sur les noeuds niveau 1 et 2, il s�lectionne uniquement le premier noeud du niveau (?!!).
    Mon Treeview est implant� avec ce code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            <asp:TreeView ID="activ" runat="server" Style="z-index: 100; left: 0px; position: absolute;
                top: -6px" ExpandDepth="1" OnSelectedNodeChanged="activ_SelectedNodeChanged" ImageSet="Arrows" MaxDataBindDepth="2">
                <LevelStyles>
                    <asp:TreeNodeStyle Font-Size="Large" Font-Underline="False" />
                </LevelStyles>
                <SelectedNodeStyle Font-Bold="True" ForeColor="#5555DD" Font-Underline="True" HorizontalPadding="0px" VerticalPadding="0px" />
                <ParentNodeStyle Font-Bold="False" />
                <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
                <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="5px"
                    NodeSpacing="0px" VerticalPadding="0px" />
            </asp:TreeView>
    Il est initialis� sur l'�v�nement Page_Load de la page (j'ai lu dans un post que c'�tait la meilleure solution) :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
        protected void Page_Load(object sender, EventArgs e)
     
        {
            if (!IsPostBack)
            {
                TreeNode noeudRacine = new TreeNode("Activités", "0");
                activ.Nodes.Add(noeudRacine);
                //noeudRacine.NavigateUrl = "javascript:void(0);";
     
                OleDbConnection cnx = new OleDbConnection();
                cnx.ConnectionString = ads_filiere.ConnectionString;
                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = cnx;
                cnx.Open();
                cmd.CommandText = "select filiere from filiere";
                OleDbDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    TreeNode noeudFiliere = new TreeNode(dr.GetString(dr.GetOrdinal("filiere")), "1");
                    noeudRacine.ChildNodes.Add(noeudFiliere);
                    //message += noeudFiliere.NavigateUrl.ToString() + "<br>";
                    //noeudFiliere.NavigateUrl = "javascript:void(0);"
                    OleDbConnection cnx2 = new OleDbConnection();
                    cnx2.ConnectionString = ads_filiere.ConnectionString;
                    OleDbCommand cmd2 = new OleDbCommand();
                    cmd2.Connection = cnx2;
                    cnx2.Open();
                    cmd2.CommandText = "select branche from branche where filiere='" + dr.GetString(dr.GetOrdinal("filiere")) + "'";
                    OleDbDataReader dr2 = cmd2.ExecuteReader();
                    while (dr2.Read())
                    {
                        if (!dr2.IsDBNull(0) && dr2.GetString(0).Trim() != "")
                        {
                            TreeNode noeudBranche = new TreeNode(dr2.GetString(0), "2");
                            noeudFiliere.ChildNodes.Add(noeudBranche);
                            //message += noeudBranche.NavigateUrl.ToString() + "<br>";
                            //noeudBranche.NavigateUrl = "javascript:void(0);";
                            OleDbConnection cnx3 = new OleDbConnection();
                            cnx3.ConnectionString = ads_filiere.ConnectionString;
                            OleDbCommand cmd3 = new OleDbCommand();
                            cmd3.Connection = cnx3;
                            cnx3.Open();
                            cmd3.CommandText = "select spécialité from spécialité where branche='" + dr2.GetString(0) + "'";
                            OleDbDataReader dr3 = cmd3.ExecuteReader();
                            while (dr3.Read())
                            {
                                if (!dr3.IsDBNull(0) && dr3.GetString(0).Trim() != "")
                                {
                                    TreeNode noeudSpécialité = new TreeNode(dr3.GetString(0), "3");
     
                                    //noeudSpécialité.NavigateUrl = "javascript:void(0);";
                                    noeudBranche.ChildNodes.Add(noeudSpécialité);
                                }
                            }
                            dr3.Close();
                            cnx3.Close();
                        }
                    }
                    dr2.Close();
                    cnx2.Close();
                }
                dr.Close();
                cnx.Close();
     
            }
        }
    Enfin, j'ai cod� la proc�dure SelectedNodeChanged comme suit (juste le remplissage de zones de texte avec les donn�es du noeud s�lectionn� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        protected void activ_SelectedNodeChanged(object sender, EventArgs e)
        {
            Response.Write(activ.SelectedNode.Text);
            txtselectedvalue.Text = activ.SelectedNode.Text;
            txtselectedvalue2.Text = activ.SelectedNode.Text;
            txtpath.Text = activ.SelectedNode.ValuePath;
            txtniveau.Text = activ.SelectedNode.Depth.ToString();
     
        }
    Question : Pourquoi le treeview ne fonctionne qu'avec les noeuds de niveau 3 ? et pas avec tous ? Je n'ai pas trouv� de propri�t� qui param�tre cel�, je n'ai pas trouv� de r�ponse dans le forum non plus, c'est pour �� que je demande si quelqu'un ne verrait pas une solution � mon probl�me ?
    Merci

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Par d�faut
    J'ai trouv� mon probl�me : � la cr�ation des noeuds, je mettais pour la propri�t� "value", le niveau de l'arbre du noeud s�lectionn�, or le Treeview a l'air d'utiliser cette valeur pour d�finir le "Path" du noeud, j'ai donc remplac� le code suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    TreeNode noeudBranche = new TreeNode(dr2.GetString(0), "2");
    Par ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    TreeNode noeudBranche = new TreeNode(dr2.GetString(0), dr2.GetString(0));
    Et mon probl�me st r�solu. En fait j'utilise la proprri�t� Treenode.Depth pour d�terminer le niveau sur lequel je me trouve.

    Si ce post peut quand m�me servir � quelqu'un, tant mieux !!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me avec un treeview
    Par adicor dans le forum MFC
    R�ponses: 8
    Dernier message: 01/12/2006, 22h59
  2. [VBA-Excel]Probl�me de cr�ation Treeview
    Par marsupilami34 dans le forum Macros et VBA Excel
    R�ponses: 2
    Dernier message: 18/08/2006, 15h44
  3. T�l�charger le Controle Treeview
    Par Jeannot45 dans le forum Access
    R�ponses: 4
    Dernier message: 12/07/2006, 14h59
  4. Probl�me avec control parent de type TDrawGrid
    Par slylafone dans le forum C++Builder
    R�ponses: 2
    Dernier message: 09/11/2005, 17h32
  5. Probl�me avec Virtual Treeview
    Par bisounoursbleu dans le forum Composants VCL
    R�ponses: 6
    Dernier message: 06/12/2004, 15h37

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