Bonjour à tous,
j'essaie de mettre en place un compte à rebours à l'aide d'ajax mais je n'y arrive pas. Mon problème est que j'ai une variable "Rebours" initialisée dans le Page_Load qui semble perdre sa valeur. Donc à chaque fois elle récupère la valeur 1minute et donc mon affichage reste statique avec mon décompte qui reste à 59secondes. En gros à chaque fois il décrémente d'une seconde mais il décrémente la même valeur sans jamais conserver le résultat. Je vous mets le code pour mieux comprendre.
coté aspx:
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 public partial class _Default : System.Web.UI.Page { DateTime rebours = new DateTime(); protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { rebours = DateTime.Parse("2011/01/01 00:01:00"); } } //protected void Button1_Click(object sender, EventArgs e) //{ // string fonction = "CountDown('60', 'label1')"; // string script = "<SCRIPT LANGUAGE='JavaScript'>" + fonction + "</SCRIPT>"; // Page.RegisterClientScriptBlock("CountDown", script); //} protected void Timer1_Tick(object sender, EventArgs e) { rebours = rebours.AddSeconds(-1); Label6.Text = rebours.Second.ToString(); UpdatePanel1.Update(); }
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 <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick"></asp:Timer> <asp:Label ID="Label6" runat="server" Text="Label"></asp:Label> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> </asp:UpdatePanel> </div>
J'espère sincèrement que vous pourrez m'aider.
Je vous remercie par avance.
Partager