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 :

c# Le méchant databind charge une deuxième fois le page_load!


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Points : 10
    Points
    10
    Par défaut c# Le méchant databind charge une deuxième fois le page_load!
    Bonjour à tous!

    Voici une devinette:
    J'ai un porjet asp.net avec une gridview et une dropdownlist.
    Au chargement de la page, je souhaite renseigner ces deux controles avec des databind à partir d'une autre fonction (appelée par le page_load) mais celles-ci obligent la fonction page_load a être relancée... L'ennui c'est que j'effectue mav sauvegarde par une session et que celle-ci se perd en route...
    Le code est parfois plus compréhensible que les mots:
    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
     
    protected void Page_Load(object sender, EventArgs e)
        {
             if (this.IsPostBack)
            {
                dsAjouts = (System.Data.DataSet)Session["Ajout"];
            }
            else
            {
                if (dsAjouts.Tables.Count == 0)
                {
                    Session["Ajout"] = dsAjouts;
                    dsAjouts.Tables.Add("ajout");
                    Colonnes[0] = new System.Data.DataColumn("Nom");
                    Colonnes[1] = new System.Data.DataColumn("Prénom");
                    dsAjouts.Tables[0].Columns.AddRange(Colonnes);
                    Initialiser_datagrid();
                }
           }
       }
     
        public void Initialiser_datagrid()
        {
                System.Data.DataRow dr = dsAjouts.Tables[0].NewRow();
                dr["Nom"] = "(Nouveau Nom)";
                dr["Prénom"] = "(Nouveau Prénom)";
                dsAjouts.Tables[0].Rows.Add(dr);
                GridView1.DataSource = dsAjouts.Tables[0];
                GridView1.EditIndex = dsAjouts.Tables[0].Rows.Count - 1;
                GridView1.DataBind();  //<- réappelle page_load, pkoi? :cry:
        }
    Voilà donc... Le IsPostBack fonctionne bien une première fois mais à cause du databind ci-dessus, je perds tout le contenu de ma session...

    Je ne garantis pas que cela soit l'objet d'une belle connerie de ma part, alors n'hésitez pas à proposer... Les plus grosses erreurs sont parfois les plus invisibles...

  2. #2
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 218
    Points : 247
    Points
    247
    Par défaut
    Ce n'est pas le databind qui charge la page 2 fois...

    Par contre, mets le AutoEventWireup à false dans ta page aspx, ca devrait fonctionner.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Magnifique!

    Merci pour ta réponse! En plein dans le mille!
    Clair, concis, rapide! Cela m'a corrigé le problème, je repasse une deuxième fois mais en restant dans le mode postback, donc en pouvant garder intact ma session!
    J'ai modifié ce paramètre sur ma page principale...
    Après deux jours de recherche, ça fait extrèmement zizir!

    Bonne journée à toi Akanath!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/05/2014, 22h20
  2. Réponses: 3
    Dernier message: 06/02/2013, 22h57
  3. Réponses: 4
    Dernier message: 29/06/2011, 12h00
  4. Deux exécutable, une DLL: sera-t-elle chargée une seule fois?
    Par scadieux dans le forum Framework .NET
    Réponses: 8
    Dernier message: 09/04/2009, 12h26
  5. [MySQL] parcourir une deuxième fois un résultat mysql avec mysql_fetch_row
    Par arnogef dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/04/2007, 15h35

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