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 :

recharger un 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 recharger un treeview
    Bonjour

    J'ai un problème pour recharger mon treeview sur une page web.
    Il est initialisé sur la méthode "treeview_load", que je n'arrive pas à exécuter à la fin d'une requête sur mes données, mon code :
    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
            OleDbConnection cnx = new OleDbConnection();
            cnx.ConnectionString = ads_filiere.ConnectionString;
            OleDbCommand cmd = new OleDbCommand();
            OleDbCommand cmd2 = new OleDbCommand();
            OleDbCommand cmd3 = new OleDbCommand();
            cmd.Connection = cnx;
            cmd2.Connection = cnx;
            cmd3.Connection = cnx;
            cnx.Open();
            cmd.CommandText = "select nom, ville from [activ-client], clients where activité='" + txtselectedvalue2.Text + "'";
            cmd2.CommandText = "select marque from marqueclient where activité='" + txtselectedvalue2.Text + "'";
            OleDbDataReader dr2 = cmd2.ExecuteReader();
            OleDbDataReader dr = cmd.ExecuteReader();
            string str= "impossible de supprimer l'activité sélectionnée : elle est référencée pour ";
            int niv = activ.SelectedNode.Depth;
            string req ="";
            switch (niv) {
                case 0:
                    txtromsg.Text = "impossible de supprimer le noeud racine";
                    break;
                case 1:
                    req = "delete * from filiereproduit where filiere='" + txtselectedvalue2.Text + "'";
                    break;
                case 2:
                    req = "delete * from brancheproduit where branche='" + txtselectedvalue2.Text + "'";
                    break;
                case 3:
                    req = "delete * from spécialitéproduit where spécialité='" + txtselectedvalue2.Text + "'";
                    break;}
            if (dr.HasRows)
                while (dr.Read())
                    str = str + dr.GetString(0) + " , " + dr.GetString(1);
            if (dr2.HasRows)
                while (dr2.Read())
                    str = str + dr2.GetString(0);
            cmd3.CommandText = req;
            Response.Write (req);
            cmd3.ExecuteNonQuery();
            activ_Load();
            cnx.Close();
    message d'erreur :
    CS1501: Aucune surcharge pour la méthode 'activ_Load' ne prend d'arguments '0'
    déclaration de la méthode en question (je vous épargne tout le code qui consiste à charger le treview...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        protected void activ_Load(object sender, EventArgs e)
    Je ne comprends pas trop comment utiliser ces méthodes liées aux évènements, quelqu'un pourrait-il me dire ce qu'il faut mettre comme arguments ?

    Merci beaucoup

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    essaie comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activ_Load(this, new EventArgs());

  3. #3
    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
    Merci Tomlev

    J'ai même fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            activ.DataBind();
            activ_Load(this, new EventArgs());
    mais çà ne fonctionne pas : çà ne déclenche pas l'évènement, mais le message d'erreur a disparu, c'est déjà çà.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par patbeautifulday1 Voir le message
    Merci Tomlev

    J'ai même fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            activ.DataBind();
            activ_Load(this, new EventArgs());
    mais çà ne fonctionne pas : çà ne déclenche pas l'évènement, mais le message d'erreur a disparu, c'est déjà çà.
    Non, effectivement, ça ne déclenche pas l'évènement... ça appelle simplement la méthode qui gère l'évènement. Pour déclencher l'évènement, il faudrait appeler la méthode OnLoad de la grid, mais elle est protégée a priori...

  5. #5
    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
    Effectivement Tomlev, tu as raison, soyons précis : çà ne déclenche pas l'évènement, mais exécute la méthode en question.
    Mais j'ai comprendu le problème je crois : si l'on examine le code de la méthode à activ_load, elle commence par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        protected void activ_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                TreeNode noeudRacine = new TreeNode("Activités", "premier");
                activ.Nodes.Add(noeudRacine);
    etc, etc...
    Et comme j'ai déjà chargé la page, je ne suis plus (!Ispostback) !!
    Il faut recharger la page...
    J'ai donc fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Response.Redirect(Request.Url.ToString());
    Et çà fonctionne !!
    Merci, pour ton aide Tomlev

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

Discussions similaires

  1. TreeView et menu contextuel...
    Par agh dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/04/2009, 12h23
  2. TreeView -> ajouter un child à un noeud donné
    Par fake dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/03/2003, 17h14
  3. Réponses: 5
    Dernier message: 09/01/2003, 11h55
  4. où y a t il un tutorial pour le Treeview ??
    Par silvermoon dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/12/2002, 13h30
  5. [Pointer]Treeview.Data
    Par rbag dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/08/2002, 01h44

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