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.

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();
 
    }
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
<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.