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 :

Garder contrôles créés dynamiquement


Sujet :

ASP.NET

  1. #1
    Membre confirmé Avatar de roshy
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 107
    Par défaut Garder contrôles créés dynamiquement
    Bonjour,

    Le titre n'est pas très clair alors je vais expliqué mon problème ^_^

    Voilà, je voudrais créé une page où une personne peut uploader une photo et indiqué qui se trouve dessus. Pour dire qui est sur la photo, on n'a qu'à rentre son nom dans un textbox. Mais voilà, s,il y a plus d'une personne, je veux pouvoir ajouter des textbox sur la form par un bouton.

    Présentement, je ne peux qu'en ajouter un et si j'écrit du texte dedans, lorsque je reclique sur le bouton, je perds le texte.

    En fait, je me suis rendu compte que, même dans un UpdatePanel, les contrôles créés par le bouton ne sont pas gardés. Donc le premier clique créé le textbox. Lors du deuxième clique, le textbox disparait et est rwemplacé par un autre.

    Comment puis-je faire pour garder les textbox créé dynamiquement par mon bouton?

    Voici mon code pour la page :
    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
    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="uploadpics.aspx.vb" Inherits="Agence.uploadpics" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Upload Pics</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:FileUpload ID="FileUpload1" runat="server" />
     
            <br />
            <asp:Button ID="btnUpload" runat="server" Text="Button" />
     
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Panel ID="Panel1" runat="server">
    asp:Button ID="btnAdd"
                    runat="server" Text="Add Textbox" />
                    </asp:Panel>
     
            </ContentTemplate>
            </asp:UpdatePanel>
        </div>
        </form>
    </body>
    </html>
    Et mon code-behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       Private Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAdd.Click
            Dim txt As New TextBox
     
            Panel1.Controls.Add(txt)
        End Sub
    Merci de votre temps ^_^

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu dois recréer tous tes contrôles à chaque PostBack

  3. #3
    Membre confirmé Avatar de roshy
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 107
    Par défaut
    D'accord merci ^_^

    Mais comment je fais pour garder la valeur que j'ai écrit dedans?

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est automatique normalement

  5. #5
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Attention à garder les mêmes ID si tu veux que le ViewState soit rétabli lors de la deuxième (et nième) création de ton contrôle. De même pour les Events.

    Mais comme le dis lutecefalco, tu n'as pas la choix, il faut les recréer à chaque fois (et.... pas après le Page_Load surtout, sinon tu n'auras pas le ViewState rétabli => cf cycle de vie d'un contrôle dans une page ASP.NET).

    En espérant t'avoir aidé.

  6. #6
    Membre confirmé Avatar de roshy
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 107
    Par défaut
    Wow, effectivement ça fonctionne, je ne croyais pas que ce serait aussi simple (je me voyais en train de devoir garder des valeurs en mémoire et tout et tout)

    Merci beaucoup à vous deux

    Et hop, un tag "Résolu"

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/12/2014, 13h16
  2. Réponses: 5
    Dernier message: 05/05/2011, 11h10
  3. Accès à des contrôles créés dynamiquement
    Par sphynxounet dans le forum VB.NET
    Réponses: 1
    Dernier message: 12/08/2009, 20h34
  4. Gerer les evenements de Contrôles créés dynamiquement
    Par celineSGH dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/12/2008, 02h25
  5. Erreur EACCESSVIOLATION avec des compsts créés dynamiquement
    Par tsikpemoise dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/02/2004, 19h05

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