Bonjour,
Je cherche à utiliser un UpdatePanel, avec un trigger. Cependant j'ai l'impression que tout ne se passe pas comme il faut.
Dans WDS 2008, j'ai débugué le code suivant, et bizarrement l'évènement "Load" du 1er UpdatePanel est appelé quand je clique sur son bouton, mais son résultat d'exécution (mise à jour sur l'IHM) ne se produit pas. C'est pas logique, il ne devrait pas y avoir d'appel de rafraîchissement de ce panel, uniquement de l'autre par le trigger mis en place (et qui fonctionne bien).
Si je commente le code de "Load" pour le panneau 1, le code sur "click" du bouton de panneau 1 n'a pas d'impact visuel même si on passe dedans.
Pouvez-vous m'aider à voir ce qui est incorrect ? Je me suis documentée et ai téléchargé des exemples de mise à jour conditionnelle de panneaux, ils n'ont pas ce comportement en mode debug. J'ai fait une boulette quelque part...
Merci,
Barbara
Code : 1er panneau avec un bouton, 2e avec un champ texte. Le clic sur le bouton met à jour le texte du 2e panneau et ne devrait faire que cela.
La méthode "Load" du 1er panneau rafraichit le champ texte situé sous celui-ci et ajoute un label dans ce 1er panneau.
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 <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"> </asp:ScriptManager> <div> <table><tr> <td id="td1"> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" OnLoad="UpdatePanel1_Load" ChildrenAsTriggers="false"> <ContentTemplate> <asp:Button runat="server" ID="u4b1" OnClick="u4b1_Click" /> <asp:PlaceHolder runat="server" ID="pl1"></asp:PlaceHolder> </ContentTemplate> <Triggers> </Triggers> </asp:UpdatePanel></td> <td id="td4"> <asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional" OnLoad="UpdatePanel4_Load"> <ContentTemplate> <asp:TextBox ID="TB4" runat="server" Width="250"/> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="u4b1" EventName="Click" /> </Triggers> </asp:UpdatePanel></td> </tr></table> <asp:TextBox ID="Msg" runat="server" Width="250"/> </div> </form>
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 public partial class _Simple : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected override void OnInit(EventArgs e) { base.OnInit(e); } protected void UpdatePanel4_Load(Object sender, EventArgs e) { TB4.Text = "panel 4 loaded at " + DateTime.Now.ToString(); } protected void UpdatePanel1_Load(Object sender, EventArgs e) { Msg.Text = "panel 1 loaded at " + DateTime.Now.ToString(); addNewLabelPanel1(); } protected void u4b1_Click(Object sender, EventArgs e) { Msg.Text = "clic sur bouton u4b1 à " + DateTime.Now.ToString(); } protected void addNewLabelPanel1() { Label l1 = new Label(); String z = "" + new Random().Next(100); l1.ID = z; l1.Text = z; pl1.Controls.Add(l1); pl1.Controls.Add(new HtmlGenericControl("br")); } }
Partager