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 :
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>
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
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();
 
        }
Bon pour compliquer un peux j'ai mis tout ça dans un PlaceHolder avec une MasterPage mais ça ne semble pas poser problème

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