-1

我的 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");
        }
    }

现在..我想使用这个计时器隐藏页面重定向的延迟。即在定时器执行的同时,页面也必须重定向。或者重定向的延迟必须由这个计时器显示。如何做到这一点?

4

1 回答 1

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;
于 2013-08-16T08:49:02.893 回答