3

我对代码没有任何问题,它工作正常。但是,我正在寻找这种倒计时的替代方法。

这是代码

当前页面.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label2" runat="server" Text="You will be redirected in..."></asp:Label>
            <asp:Timer ID="Timer1" runat="server">
            </asp:Timer>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:Label ID="Label1" runat="server" Text="10"></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>
    </form>
</body>
</html> 

文件隐藏代码

using System;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Timer1.Enabled = true;
            Timer1.Interval = 1000;
            Timer1.Tick += new EventHandler<EventArgs>(Timer1_Tick);
        }
        void Timer1_Tick(object sender, EventArgs e)
        {
            int i=(Convert.ToInt16(Label1.Text));
            i = i - 1;
            Label1.Text = i.ToString();
            if (i<0)
            {
                Timer1.Enabled = false;
                Response.Redirect("TargetPage.aspx");
            }
        }
    }
}

我正在寻找的只是任何替代方法。

4

2 回答 2

2

如果您的计时器不需要来自服务器端的任何东西,那么您可能应该只使用 JQuery 或纯 Javascript 在客户端做一个计时器 - 它会使客户端-服务器通信保持低 (0)。

如果您的支持确实发生了一些事情,您必须检查我认为您仍然应该将其更改为一些 JQuery/Javascript + 一些 Web 服务或 Web 方法或简单的 ashx 处理程序。尽管您提供的内容确实有效,但我认为将其保留在页面功能之外会更干净。

有很多客户端计时器:http ://code.cyntaxtech.com/plugins/jquery-timer/demo 或这个jQuery 倒计时计时器

于 2012-10-08T17:17:32.287 回答
2

除非您需要通过 c# 代码动态指定重定向位置,否则您可以实现纯 JavaScript 客户端方法。它可以是一个简单的 javascript 函数,它将使窗口导航到所需的页面。

于 2012-10-08T17:04:01.927 回答