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

C# Discussion :

Création de TextBox Dynamique et évènement.


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Par défaut Création de TextBox Dynamique et évènement.
    Bonjour,

    Je suis aujourd'hui sur un projet en asp.net qui me pose un problème depuis quelques jours. Alors je vais essayer d'être clair. L'utilisateur doit pouvoir éditer certaines données, certains jours, pour cela je vérifie qu'il a les droits etc. et juste après je créer de façon dynamique des TextBox pour qu'il puisse y placer les données qu'il veut modifier.

    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
     
     
    //Condition à remplir
     if (Edit == true && DateEdit(i) == true)
                        {
                            TextBox tb = new TextBox();
                            Resum.Rows[i + 2].Cells[1].Controls.Add(tb);
                            tb.Visible = true; tb.EnableViewState = true;
                            tb.TextChanged += new System.EventHandler(this.Tb_TextChanged);
                            tb.ID = "MonTextbox"
                            if (arrond(rPreSopRemp.GetValue(0).ToString()) == "")
                            {
                                tb.Text = "0";
                            }
                            else
                            {// Chargement grâce à une requête sql.
     
                                    tb.Text = arrond(rPreSopRemp.GetValue(0).ToString());
                            }
    Mon problème c'est que je n'arrive pas à garder dans le ViewState la/les valeur de ma/mes Textbox, il y a normalement un bouton pour qu'il puisse enregistrer les données, mais les textbox disparaissent si je clique dessus.

    De plus visiblement pour le moment l'ajout de l'évènement ne fonctionne pas non plus. Pour l'évènement voilà ce que j'ai écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     private void Tb_TextChanged(object sender, System.EventArgs e)
        {
            Response.Write("Vous venez de modifié : avec la valeure : " + tb.Text);
        }
    Malgré pas mal d'heures à passé là dessus, je n'arrive pas à trouver de solution. Ni à comprendre vraiment comment tous le processus se déroule.

    Merci d'avance pour une réponse, ne serait-ce qu'une ébauche d'idée pour que je trouve une solution.

    Bonne journée à tous.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut Solution : recréer les contrôles
    Salut,

    Cette erreur arrive souvent lors de la création de contrôles dynamique. L'erreur ne provient pas non plus du viewstate : il a la charge de conserver l'état des contrôles de la page, pas la liste des contrôles de la page !

    Si tu me suis, il faut donc rajouter une nouvelle fois le contrôle dans le postback (le plus tôt possible, init est bien) pour que le viewstate restore l'état mais aussi que les events fonctionnent pour ce nouveau contrôle.

    C'est pas très pratique mais c'est le prix à payer pour faire du dynamique en asp.net.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 51
    Par défaut
    Merci pour ta réponse si rapide.

    Puisque je n'ai jamais touché à la fonction init, et que je n'arrive pas à la trouvé dans le GlobalRessource, j'ai réussis à gérer le rechargement des contrôles en rappelant ma fonction dans le load comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (Page.IsPostBack && //Autre condition pour mon code)
    {
            Tab_Charge();
    }
    Merci encore de ton aide, je pensais que le ViewState chargeait automatiquement ce qu'il avait en mémoire ^^.

    Bonne journée

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

Discussions similaires

  1. Création de textbox dynamique
    Par mark. dans le forum Visual Studio
    Réponses: 2
    Dernier message: 07/06/2014, 00h42
  2. Création d'un textbox dynamique
    Par hazem2410 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/03/2011, 16h09
  3. Réponses: 3
    Dernier message: 16/10/2007, 16h57
  4. Création dynamique d'évènements
    Par thierrybatlle dans le forum Access
    Réponses: 1
    Dernier message: 14/04/2006, 19h21
  5. Réponses: 7
    Dernier message: 18/12/2003, 10h23

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