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 Ajax Discussion :

Evenements de control crée dynamiquement depuis un evenement


Sujet :

ASP.NET Ajax

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Par défaut Evenements de control crée dynamiquement depuis un evenement
    Bonjour,
    Je n'ai pas de code à exposer actuellement mais je peux en donner si il le faut.
    Je pense pouvoir expliquer ce que je recherche assez simplement.
    Je travaille sur du C# avec visual studio 2008.

    Mon .aspx de mon projet Web Form contient un simple Script Manager et un Panel Update contenant un panel d'id="contenu"

    Dans le code behind, dans le page_load, j'ajoute à contenu un bouton1 et lie à l’évènement "Click" la fonction bouton1_Click.
    Cette fonction ajoute un nouveau bouton à contenu que nous appellerons bouton2. Je lie à l’évènement "Click" de ce bouton2, la fonction bouton2_Click.
    Peu importe ce que bouton2_Click fait.

    Résultat :
    Il y a bien un bouton1 qui fait apparaître un bouton2 lorsque l'on clique dessus.
    Mais lorsque je clique sur le bouton2, le bouton disparaît et bouton2_Click n'est jamais exécuté.

    J'ai cru comprendre que cela venait de PanelUpdate qui appelait le page_load et donc effaçait ce bouton2.

    Y'aurait t'il un moyen de réaliser ce système de bouton en contournant ce problème ?

    Concrètement, je cherche à afficher une liste de bouton "menu" qui lorsque l'on clique dessus fait apparaître une liste de bouton "sous-menu" (avec des informations récupéré en BD) etc. Pour réaliser une sorte d'arbre.

    Merci d'avance !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Par défaut
    Ajout de code, qui finalement, est plus compréhensible :

    WebForme1.aspx
    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
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %>
     
    <!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></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="SM" runat="server"></asp:ScriptManager>
        <asp:UpdatePanel runat="server">
        <ContentTemplate>
            <asp:Panel ID="contenu" runat="server">
     
            </asp:Panel>
        </ContentTemplate>
        </asp:UpdatePanel>
     
        </form>
    </body>
    </html>
    WebForm1.aspx.cs (code-behind)
    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
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                    Button bouton1 = new Button();
                    bouton1.Click += new EventHandler(bouton1_Click);
                    bouton1.Text = "bouton1";
                    contenu.Controls.Add(bouton1);
     
            }
            protected void bouton1_Click(object sender, EventArgs e)
            {
                Button bouton1 = ((Button)sender);
                bouton1.Text += "1";
                Button bouton2 = new Button();
                bouton2.Click += new EventHandler(bouton2_Click);
                bouton2.Text = "bouton2";
                bouton1.Parent.Controls.Add(bouton2);
            }
     
            protected void bouton2_Click(object sender, EventArgs e)
            {
                Button bouton = ((Button)sender);
                bouton.Text += "2";
     
            }
        }

  3. #3
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : dev
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Par défaut
    Bonjour

    J'ai un souci similaire mais plus complex
    pour le tient n'oublie pas que lors du postback ton bouton2 doit être recré

Discussions similaires

  1. Evenements de controles ajoutés Dynamiquement
    Par AirbusA330 dans le forum VB.NET
    Réponses: 2
    Dernier message: 11/09/2009, 00h05
  2. Evenement sur controls ajouter dynamiquement
    Par TheBlackReverand dans le forum ASP.NET
    Réponses: 0
    Dernier message: 11/02/2009, 12h54
  3. Perte des controles crées dynamiquement
    Par Worldofdada dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/07/2008, 16h55
  4. Réponses: 3
    Dernier message: 29/05/2007, 10h17
  5. Evenement avec control créé dynamiquement
    Par BoyzInDaProject dans le forum MFC
    Réponses: 2
    Dernier message: 01/05/2007, 00h52

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