【问题标题】:Label text update on every second in web form网页表单中的标签文本每秒更新一次
【发布时间】:2021-07-31 14:27:46
【问题描述】:

我正在为应用程序做一些 .Net 的东西。我有一个带有一个按钮和标签的 web 表单,在这里我必须每隔一秒更新一些标签消息。所以我可以在 web 上看到运行时日志表单。我有一个非常简单的带有按钮和标签的 Web 表单,但标签没有更新。

点击提交按钮后,@MyTimerEventHandler 将每隔一秒调用一次。

您能否建议我如何使用标签或文本框在 Web 表单中查看运行时日志。

protected void Page_Load(object sender, EventArgs e)
        {
              // To update the first time.
              Label2.Text = "hello";

        }
    private void MyTimerEventHandler(object source, System.Timers.ElapsedEventArgs e)
        {
              nTotalSeconds += nIntervalInSeconds;
              Label2.Text = "timer " + nTotalSeconds.ToString();
              System.Diagnostics.Debug.WriteLine("called");
              
        }
        protected void Button2_Click(object sender, EventArgs e)
        {

              System.Timers.Timer myTimer = new System.Timers.Timer();
              myTimer.Elapsed += new System.Timers.ElapsedEventHandler(MyTimerEventHandler);
              myTimer.Interval = nIntervalInSeconds * 1000;
              myTimer.Start();
    }

【问题讨论】:

    标签: .net .net-core webforms


    【解决方案1】:

    尝试使用 asp:ScriptManager 和 asp:UpdatePanel。

    Html (.aspx)
    
      <form id="form1" runat="server">             
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <asp:Timer runat="server" id="UpdateTimer" ontick="UpdateTimer_Tick" />
            <asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
                <Triggers>
                    <asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
                </Triggers>
                <ContentTemplate>
                     <asp:Label id="Label1" runat="server" Text="1" />
                </ContentTemplate>
            </asp:UpdatePanel>
        </form>
        
        
        
    Code behind
    
    protected void Button2_Click(object sender, EventArgs e)
    {
        UpdateTimer.interval = 1000;    
    }
    
    protected void UpdateTimer_Tick(object sender, EventArgs e)
    {
        System.Diagnostics.Debug.WriteLine("called");
    }
    

    【讨论】:

    • 它正在更新脚本逻辑,我添加了带有时间戳的标签,因此我能够看到每秒更新的时间,但是如何将 @System.Diagnostics.Debug.WriteLine 字符串参数更新为标签
    • protected void UpdateTimer_Tick(object sender, EventArgs e) { Label1.Text += "Called" + DateTime.Now().ToString(); }
    • 是的,它正在更新 { Label1.Text += "Called " + DateTime.Now().ToString(); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多