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.
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.
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);
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Bonsoir,
Peut on rajouter ce code à l'intérieur d'une boucle for pour construire un tableau en response.write.... ?
Merci d'avance.
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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.
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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)!!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.
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
Salut,Ben oui...
Et?... Ca change quoi?
A croire que le développement web n'existait pas avant ASP.Net MVC...
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+
"Winter is coming" (ma nouvelle page d'accueil)
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.
"Winter is coming" (ma nouvelle page d'accueil)
"Winter is coming" (ma nouvelle page d'accueil)
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.
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
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.
Ton lien pointe vers l'article 1.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 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 <%@ 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>A+
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(); } } }
"Winter is coming" (ma nouvelle page d'accueil)
Partager