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 :

Intialisation d'un control sur Page_load ou Page_Prerender ?


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut Intialisation d'un control sur Page_load ou Page_Prerender ?
    Bonsoir,

    débutant ASP je viens vers vous pour un petit problème de compréhension sur l'initialisation d'un control dans une page.

    Imaginons la Dropdownlist DDL1 et la TextBox TB1.
    Sur l'evenement Page_Load je fixe la valeur par défaut de la dropdownlist à DDL1.SelectedValue = "xxx" puis j'affecte cette valeur à la textbox TB1.Text = DDL1.SelectedValue. Quand la page s'affiche, la valeur par défaut de la dropdownlist est OK mais aucune valeur pour la textbox ....

    Je me dis OK, les contrôles ne sont pas encore instanciés ... Je refais la même manip sur le Page_LoadComplete, Page_PreRender, que dalle !!

    Quelqu'un pourrait-il éclairer mes lanternes ?

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Bienvenu.

    Tu peux nous mettre un peu de code?

    Le rechargement de la page pur prendre en compte la séléction se fait en général sur le changement de selection (DropDownList1_SelectedIndexChanged par exemple si ta ddl porte l'id DropDownList1) ou sur l'action d'un bouton.
    L'appel de la méthode correspondante se fait avant le page_load. Tu peux affecter la valeur de la ddl à la textbox à ce moment.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut
    Grosso modo, le but est qu'au premier appel de la page je me positionne par défaut sur un type d'article et puisse déclencher son évènement selectedindexchanged automatiquement (qui contient tout le code de construction d'un selectcommand qui est basé sur le fameux type d'article ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void Page_Load(object sender, EventArgs e)
      {
        if (!Page.IsPostBack)
        {
          DdlTypeArticle.SelectedValue = Application["Id_TypeArticle_x"].ToString();
          DdlTypeArticle_SelectedIndexChanged(null, null);
     
        }
        else if (ViewState["ArticlesSelectCommand"] != null)
        {
          SqlDataArticles.SelectCommand = ViewState["ArticlesSelectCommand"].ToString();
        }
      }
    Et quand dans l'évènement DdlTypeArticle_SelectedIndexChanged, je fais référence à DdlTypeArticle.SelectedValue, il n'a pas la valeur spécifiée précédemment ....

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Bibbox Voir le message
    puisse déclencher son évènement selectedindexchanged automatiquement
    C'est pas logique.
    Si tu as un morceau de code localisé dans cette méthode c'est parce que il doit être executé au moment de la soumission par le client.

    Si tu y a mis un bout de code qui doit être executé au premier chargement de la page, refactorise le code en une méthode privé et fais y appel dans le Page_Load et SelectedIndexChanged.

    "SelectedIndexChanged" ne devrait pas être appelé en dehors d'une action du client.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Par défaut
    J'ai résolu mon problème.
    Le fait est que sur le page_load j'initialise une valeur par défaut pour ma dropdownlist mais que le contrôle n'a pas encore été alimenté par la datasource ... Si je déplace le code après le databind de la dropdownlist, (dans le prerender du control), tout fonctionne ...

    Merci.

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

Discussions similaires

  1. [C#2.0]location d'un control sur une fenetre
    Par chnew dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/04/2006, 16h15
  2. Controle sur 1 col. dont l'existence est soumise à condition
    Par HOUDEBINE dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/02/2006, 07h51
  3. [VB]Control sur une msflexgrid ?
    Par Shypster dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/01/2006, 14h29
  4. [JSP/WebSphere] Boucle de controle sur un FTP
    Par benben13 dans le forum Websphere
    Réponses: 10
    Dernier message: 30/08/2005, 16h18
  5. affichage de controles sur un splash screen
    Par shrek dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 19h59

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