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 :

Ajouter des boutons à la volé


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut Ajouter des boutons à la volé
    Bonsoir,

    Est il possible de rajouter des boutons ASP à la volé? j'ai essayé avec les contrôles HTML comme <input>, <img>,..etc et ça fonctionne, peut on faire la même chose avec les contrôles asp.net ?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Dans le Page_Load :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Button b = new Button { Text = "Hello" };
    this.Controls.Add(b);

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Bonsoir,

    Peut on rajouter ce code à l'intérieur d'une boucle for pour construire un tableau en response.write.... ?

    Merci d'avance.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Blunt Voir le message
    Peut on rajouter ce code à l'intérieur d'une boucle for pour construire un tableau en response.write.... ?
    Bah tu peux faire ce que tu veux dans une boucle, oui...

    Mais si tu le fais avec Response.Write, ce sera juste du HTML, pas des contrôles serveur ASP.NET...

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut
    Merci pour vos réponses, je fais des traitements en ajax, donc j'envoie à une 2ème page des données en xmlhttp pour faire un traitement et je voudrai construire mes contrôles (actuellement je fais response.write pour les contrôles html).
    Comment peut on faire la même chose avec les contrôles ASP ?.
    Merci d'avance.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Blunt Voir le message
    Comment peut on faire la même chose avec les contrôles ASP ?.
    Bah je te l'ai déjà dit... qu'est-ce que tu n'as pas compris dans ma réponse ?

  7. #7
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut
    Merci pour vos réponses, je fais des traitements en ajax, donc j'envoie à une 2ème page des données en xmlhttp pour faire un traitement et je voudrai construire mes contrôles (actuellement je fais response.write pour les contrôles html).
    Comment peut on faire la même chose avec les contrôles ASP ?.
    Merci d'avance.
    Je sais pas ce que tu veux faire mais je pense que tu veux executer des evenements apres clique sur les boutons, chose que je pense impossible dans ton cas (peut être que j'ai tord)!!

    En tout cas pour ce genre de scenarion le ASP.NET MVC est plus adequat car tu n'utilise plus des evenement mais des actions

  8. #8
    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,
    Citation Envoyé par g_tarik0010 Voir le message
    chose que je pense impossible dans ton cas (peut être que j'ai tord)!!
    Ben oui...
    Citation Envoyé par g_tarik0010 Voir le message
    le ASP.NET MVC est plus adequat car tu n'utilise plus des evenement mais des actions
    Et?... Ca change quoi?
    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
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++)
            {
                Button button = new Button();
     
                button.Click += new EventHandler(button_Click);
     
                button.Text = "Hello " + i.ToString();
     
                this.Controls.Add(button);
            }
        }
     
        void button_Click(object sender, EventArgs e)
        {
            throw new NotImplementedException();
        }
    }
    A croire que le développement web n'existait pas avant ASP.Net MVC...

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

  9. #9
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut
    Mobilis ==> Est ce que t'as au moins lu ce qu'il voulais faire ???

    Parceque je croix que tu l'as pas fait !!

    Ce qu'il veut faire c'est rajouter des boutons (qu'il doit ensuite rendre via ajax).

    Je pense que c'est pas faisable car le context d'execution du bouton change
    il n'est pas dans le context de la page dans lequel il a été créé.

    NB : Dsl pour mon français assez mediocre.

  10. #10
    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 g_tarik0010 Voir le message
    Ce qu'il veut faire c'est rajouter des boutons (qu'il doit ensuite rendre via ajax).

    Je pense que c'est pas faisable car le context d'execution du bouton change
    il n'est pas dans le context de la page dans lequel il a été créé.
    Ok, j'avais pas vu l'AJAX. Mais bon ça change rien. Les update panel à quoi ça sert?

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

  11. #11
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Ok, j'avais pas vu l'AJAX. Mais bon ça change rien. Les update panel à quoi ça sert?

    A+
    Les updates panel sert à ralentir l'execution de la page , rien d'autre.

  12. #12
    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 g_tarik0010 Voir le message
    Les updates panel sert à ralentir l'execution de la page , rien d'autre.
    Intéressant. Tu as certainement fais des mesures. Tu peux nous en faire part?
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  13. #13
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 33
    Par défaut
    Bonjour,
    Je pense que ce qui est demandé n'est pas possible car si les boutons sont créés dans un update panel à la volée, il n'empêche que lors du rechargement de l'update panel, les boutons n'existe plus (puisque créés par le code behind).
    Pour que cela fonctionne, il est nécessaire de créer chaque boutons avant le page_load, mais si on connais pas le nombre de boutons à créer, on ne peut pas les déclarer avant le page_load.

    Dites-moi si je me trompe.
    J'ai posté une question hier du même ordre, et ce sont les conclusions auxquelles je suis arrivé après une recherche dans différents forums.

  14. #14
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Intéressant. Tu as certainement fais des mesures. Tu peux nous en faire part?
    A+
    J'ai cherché dans mes vieux docs pour les trouver malheureusement j'ai pas trouvé. Cependant je t'invite à lire ces deux articles qui sont parmi des centaines Article 1 et Article 2
    Et pour ne pas sortir du cadre de la discution J'invite Blunt à consulter l'article 2 qui pourrait lui servir

  15. #15
    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 g_tarik0010 Voir le message
    J'ai cherché dans mes vieux docs pour les trouver malheureusement j'ai pas trouvé. Cependant je t'invite à lire ces deux articles qui sont parmi des centaines Article 1 et Article 2
    Ok Un updatepanel envoi plus de données. C'est très dangereux effectivement. Traverser la route aussi... Après tout cela peut se défendre si on court après les millisecondes et les centaines de bits.
    Citation Envoyé par g_tarik0010 Voir le message
    Et pour ne pas sortir du cadre de la discution J'invite Blunt à consulter l'article 2 qui pourrait lui servir
    Ton lien pointe vers l'article 1.
    Citation Envoyé par g_tarik0010 Voir le message
    chose que je pense impossible dans ton cas (peut être que j'ai tord)!!
    Pour ce qui est de déclencher un évènement sur un bouton généré dynamiquement voici un bout de code d'une application ASP.Net avec master page.
    Code inline:
    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
    <%@ Page Title="Page d'accueil" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
        CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
     
    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    </asp:Content>
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
        <p>
        </p>
        <div style="border: 1px solid black; margin: 10px;">
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" ClientIDMode="Static">
                <ContentTemplate>
                    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><br />
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
        </div>
        <div style="border: 1px solid black; margin: 10px;">
            <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <ContentTemplate>
                    <asp:Label ID="Label2" runat="server" ForeColor="red" />
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
        </div>
    </asp:Content>
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
    namespace WebApplication1
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (IsPostBack)
                {
                    AddControls(sender, e);
                }
            }
     
            private void AddControls(object sender, EventArgs e)
            {
                Label l = new Label();
                l.ID = "Label1";
                l.Text = "Label for button";
     
                UpdatePanel1.ContentTemplateContainer.Controls.Add(l);
                Button b = new Button();
                b.ID = "test";
                b.Text = "Click me";
                b.Click += new EventHandler(b_Click);
                b.ValidationGroup = "testGroup";
     
                UpdatePanel1.ContentTemplateContainer.Controls.Add(b);
     
                AsyncPostBackTrigger trig = new AsyncPostBackTrigger();
                trig.ControlID = b.ID;
                trig.EventName = "Click";
                UpdatePanel1.Triggers.Add(trig);
            }
     
            protected void Button1_Click(object sender, EventArgs e)
            {
                Label2.Text = DateTime.Now.ToLongTimeString();
            }
     
            protected void b_Click(object sender, EventArgs e)
            {
                Label2.Text = DateTime.Now.ToLongTimeString();
            }
        }
    }
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Ajouter des boutons de balisage
    Par silver59 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/05/2007, 11h04
  2. Réponses: 3
    Dernier message: 02/05/2007, 20h06
  3. Ajouter des boutons avec setParent ?
    Par NiamorH dans le forum Windows
    Réponses: 2
    Dernier message: 18/12/2006, 13h58
  4. ajouter des boutons à une InputBox
    Par guigui5931 dans le forum Access
    Réponses: 5
    Dernier message: 10/08/2006, 12h18

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