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 :

Reload d'un UserControl


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut Reload d'un UserControl
    Bonjour tout le monde.
    Mon problème est le suivant:
    J'ai un UserControl sur lequel je voudrais forcer un load.

    Je m'explique:
    J'ai ma page aspx sur laquelle se trouve mon ascx.

    Mon usercontrol contient les données d'une personne (Nom, prenom...).

    J'ai un bouton sur ma page aspx qui permet de modifier les données de mon userControl.

    Le soucis est le schéma du chargement : Load de la page --> Load du UserControl.

    Bon, ça doit pas être très clair donc je vais expliquer mon cheminement.

    Je load ma page, load du usercontrol avec les informations de la personne: Nom, prenom.

    J'ai un bouton "Suivant" qui permet d'aller rechercher la personne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Code précédent : permet de trouver la personne suivante dans une collection
    string name = null;
                string surname = null;
     
                //Recherche d'une personne selon le nouvel Id trouvé dans la collection
                this.SetPerson(this.IdPerson, out name, out surname);
     
     
                //Récupération des données dans mon UserControl
                this.Person1.Surname = surname;
                this.Person1.Name = name;
    Mais là est le soucis, les données sont récupérées, nikel, mais on ne passe plus dans le load de mon ascx qui permet d'initialiser les données comme ceci :

    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
     
     
    public string Name
    {
    //
    }
     
    public string Surname
    {
    //
    }
     
    public Person Person
    {
    get
    {
        this._Person.Name = this.TextBoxName.Text;
        this._Person.Surname = this.TextBoxSurname.Text;
    }
    set
    {
    this.TextBoxName.Text = value.Name;
    this.TextBoxSurname.Text = value.Surname;
    }
     
    }
     
    private Person _Person = null;
     
    protected void Page_Load(object sender, EventArgs e)
        {
     
     
                            this.Person= new Person();
                            this.Person.Name = this.Name;
                            this.Person.Surname = this.Surname;
          }

    Du coup, quand que clique sur mon bouton :

    Load de la page --> Load de l'ascx --> Modif des données de l'ascx.

    Donc ça ne sert strictement à rien car je suis obligé de repasser par le load de mon ascx pour que les nouvelles données imputées soient affichées.

    Peut-on forcer le load d'un ascx ?
    Merci de vos réponses.

  2. #2
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    J'ai trouvé comment recharger la page, mais c'est ultra crade... et les informations que j'envoie ne sont pas conservées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    string script = "window.location.reload(true);";
    ScriptManager.RegisterStartupScript(this, this.GetType(), "script", script, true);

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut
    Pour loader ton UserControl, tu fais un LoadControl ou il est intégré a ta page?


    Je vois que tu fais un new sur Person, j'en conclut que c'est une classe qui est independante de ton UserControl.


    a kel moment dans ton code du UserControl tes donnés sont t'elles initialisés sur tes controls web?
    en bref
    Les valeurs que tu initialise dans cette classe a kel moment sont'ils repercutés sur les controls web?.

  4. #4
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Bon et bien j'ai trouvé la solution.

    Ce que je fais c'est que je fais ça dans le OnPreRender de ma page aspx et ça fonctionne.

    Je mets en place en booléen qui se met à true si le bouton est cliqué. Dans mon OnPreRender, si le booléen est à true, je lance ma procédure de suivant.

    En plus de ça j'avais quelques soucis avec mes updatepanels.

    Bon ça marche, résolu.

    Edit: J'ai appris quelque chose d'important aujourd'hui, c'est que beaucoup de personnes (moi le premier) font une mauvaise utilisation du Load, qui ne sert qu'à mettre en place les informations. En général, tout ce qui est traitement doit se faire dans le Render ou PreRender, et les initialisations, dans le Init.

    Il est vrai que si cette base était un tant soit peu plus respectée, il y aurait moins ce genre de problème.

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

Discussions similaires

  1. [C#] UserControl
    Par topolino dans le forum ASP.NET
    Réponses: 8
    Dernier message: 22/01/2005, 20h26
  2. XMLRAD equivalent usercontrol ASp .NET
    Par le-roy_a dans le forum XMLRAD
    Réponses: 10
    Dernier message: 10/12/2004, 14h09
  3. Réponses: 12
    Dernier message: 18/03/2004, 15h09
  4. Comment reloader la frame parent?
    Par mythtvtalk.com dans le forum ASP
    Réponses: 3
    Dernier message: 27/08/2003, 11h40
  5. [VB6] [UserControl] Évènements personnalisés
    Par Frankywinky dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/05/2003, 17h56

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