Bonjour,
Voila j'essaie désespérément de réaliser une page ASP avec des panels qui vont se mettre à jour à partir du Tick de plusieurs Timer.
Mes infos étant longues à aller chercher, je souhaite pouvoir afficher un message/image en attendant le retour de ces infos. Je mets en place pour cela un UpdateProgress pour chaque UpdatePanel.
Pour tester j'ai créé 2 UpdatePanel avec chacun un Trigger controlé par un Timer. Lorsque celui-ci Tick il provoque l'affiche d'un DateTime.Now dans un Label. Un petit sleep me permet de voir passer mon UpdateProgress.
Voici le code :
Page ASP :
Le 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 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:Timer ID="Timer_heure1" runat="server" Interval="5000" OnTick="Timer_heure1_Tick" Enabled="true"></asp:Timer> <asp:Timer ID="Timer_heure2" runat="server" Interval="10000" OnTick="Timer_heure2_Tick" Enabled="true"></asp:Timer> <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server" RenderMode="Block" > <Triggers><asp:AsyncPostBackTrigger ControlID="Timer_heure1" EventName="Tick" /></Triggers> <ContentTemplate> <asp:label ID="Label1" runat="server" Text="Label1"> </asp:label> <br /> <asp:UpdateProgress ID="UpdateProgress1" runat="server"> <ProgressTemplate> Progression en cours 1 </ProgressTemplate> </asp:UpdateProgress> </ContentTemplate> </asp:UpdatePanel> <asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server"> <Triggers><asp:AsyncPostBackTrigger ControlID="Timer_heure2" EventName="Tick" /></Triggers> <ContentTemplate> <asp:label ID="Label2" runat="server" Text="Label2"> </asp:label><br /> <asp:UpdateProgress ID="UpdateProgress2" runat="server"> <ProgressTemplate> Progression en cours 2 </ProgressTemplate> </asp:UpdateProgress> </ContentTemplate> </asp:UpdatePanel> </div> </asp:Content>
Bon pour compliquer un peux j'ai mis tout ça dans un PlaceHolder avec une MasterPage mais ça ne semble pas poser problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 protected void Timer_heure1_Tick(object sender, EventArgs e) { System.Threading.Thread.Sleep(2000); Label1.Text = DateTime.Now.ToLongTimeString(); } protected void Timer_heure2_Tick(object sender, EventArgs e) { System.Threading.Thread.Sleep(2000); Label2.Text = DateTime.Now.ToLongTimeString(); }
En réalité ce qui m'embête c'est que lorsqu'un Timer Tick les 2 UpdateProgress se déclenchent.
Et en sortant les Progress du Panel et en les rattachant a leur ID (AssociatedUpdatePanelID) c'est pire. Et puis quel UpdateMode choisir !?
Je pense ne pas avoir compris une petite subtilité de ces contrôles
Merci de votre aide
Partager