我有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");
}
}
现在..我想使用此计时器隐藏页面重定向的延迟。这就是定时器正在执行,同时页面也必须重定向。或者此定时器必须显示重定向延迟。怎么做到这一点?
答案 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;