如何使用 asp.net 创建 2 分钟倒数计时器

Posted

技术标签:

【中文标题】如何使用 asp.net 创建 2 分钟倒数计时器【英文标题】:how to create 2 minute countdown timer using asp.net 【发布时间】:2020-12-12 00:42:24 【问题描述】:

我想使用 Asp.net 在文本框下创建一个 2 分钟计时器,我希望计时器位于文本框下的标签中,所以我在双击计时器图标后在控制页面中编写了以下代码:

 int seconds = int.Parse(Label1.Text);
        if (seconds > 0)


            Label1.Text = (seconds - 1).ToString("mm:ss");

        else
            Timer1.Enabled = false;

而aspx文件中的这段代码:

<span "CodeAsk">ألم تتلقى الرمز ؟</span><asp:Label ID="Label1" runat="server" text="2"></asp:Label>
        <asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Interval="120000"></asp:Timer>

但它不起作用,我的代码有什么问题?

【问题讨论】:

问题与 asp.net Core 无关。在我看来,您已经选择了所有可以找到的标签 :-) 为此使用前端javascript:google.nl/… 我的回答是否帮助您解决了问题?如果解决了,请accept it as the answer,否则,请告诉我您还存在的问题。 【参考方案1】:

但它不起作用,我的代码有什么问题?

Timer 需要与 UpdatePanel 控件一起使用。可以通过updatepanel的AsyncPostBackTrigger方法触发定时器的ontick事件。

而对于将Label的文本转化为定时器的形式,需要使用TimeSpan time = TimeSpan.FromSeconds(seconds);来实现,可以参考this。

 <form runat="server">
        <asp:ScriptManager runat="server" ID="ScriptManager1" />
        <asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Interval="1000">
        </asp:Timer>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <span id="CodeAsk">ألم تتلقى الرمز ؟</span><br />
                <asp:Label ID="Label1" runat="server" Text="2"></asp:Label>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
            </Triggers>
        </asp:UpdatePanel>
    </form>

后面的代码:

protected void Page_Load(object sender, EventArgs e)
        
            if (!Page.IsPostBack)
            
                TimeSpan time = TimeSpan.FromSeconds(Convert.ToInt32(Label1.Text) * 60);
                string str = time.ToString(@"hh\:mm\:ss");
                Label1.Text = str;
            
        

        protected void Timer1_Tick(object sender, EventArgs e)
        
            TimeSpan result = TimeSpan.FromSeconds(TimeSpan.Parse(Label1.Text).TotalSeconds - 1);
            string fromTimeString = result.ToString(@"hh\:mm\:ss");
            Label1.Text = fromTimeString;
        

这是测试结果:

【讨论】:

以上是关于如何使用 asp.net 创建 2 分钟倒数计时器的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 页面上的倒数计时器

Flutter:显示分钟和秒的倒数计时器

如何在 JavaScript 中编写倒数计时器? [关闭]

刷新网页时如何防止倒数计时器重置?

如何通过单击按钮启动倒数计时器事件?

如何创建在使用 AnimationController 创建的倒数计时器期间发出的警报?