asp.net中的Ajax Timer控件c#

时间:2013-08-16 07:16:28

标签: c# asp.net ajax

我有ajax计时器的代码,如下所示。当时间变为0时,页面将被重定向到另一页。

<h3><asp:Label ID="timer" runat="server" Text="You will be redirected to the Authentication Page in..."></asp:Label>
<asp:Timer id="asptimer" runat="server"></asp:Timer>
<asp:ScriptManager ID="ScriptManager" runat="server" ></asp:ScriptManager>
<asp:Label ID="Label1" runat="server" Text="5"></asp:Label>      

c#代码是

    protected void Page_Load(object sender, EventArgs e)
    {
        asptimer.Enabled = true;
        asptimer.Interval = 1000;
        asptimer.Tick += new EventHandler<EventArgs>(asptimer_tick);
    }

    protected void asptimer_tick(object sender, EventArgs e)
    {
        int i = (Convert.ToInt16(Label1.Text));
        i = i - 1;
        Label1.Text = i.ToString();
        if (i < 0)
        {
            asptimer.Enabled = false;
            Response.Redirect("Login.aspx");
        }
    }

现在..我想使用此计时器隐藏页面重定向的延迟。这就是定时器正在执行,同时页面也必须重定向。或者此定时器必须显示重定向延迟。怎么做到这一点?

1 个答案:

答案 0 :(得分:1)

不确定你在这里想做什么。但是,我将使用客户端计时器实现此功能。请参阅以下代码:

WebForm1.aspx的

        function LoadTimer() {
            var timeInterval = '<%= timeinterval %>';            
            var remainingSeconds = (timeInterval / 1000);
            var timeInterval = setInterval(function () {                                
                document.getElementById('divRemainingTime').innerHTML = "You will be redirected to the webform2 in... " + --remainingSeconds;

                if (remainingSeconds <= 0) {
                    window.location.href = "Webform2.aspx";
                    clearInterval(timeInterval);
                }
            }, 1000);
        }


<body onload="LoadTimer();">
    <form id="form1" runat="server">             
        <div id="divRemainingTime"  runat="server"></div>        
    </form>
</body>

WebForm1.aspx.cs中

public int timeinterval = 5000;