Текст метки обновляется каждую секунду в веб-форме

#.net #.net-core #webforms

Вопрос:

Я занимаюсь некоторыми вещами .Net для приложения.У меня есть веб-форма с одной кнопкой и меткой,здесь я должен обновлять сообщение о какой-либо метке каждую секунду.таким образом, я могу видеть журнал времени выполнения в веб-форме.У меня есть очень простая веб-форма с кнопкой и меткой, но ярлык не обновляется.

Как только я нажму на кнопку «Отправить», @MyTimerEventHandler будет вызываться каждую секунду.

можете ли вы подсказать, как сделать так, чтобы я видел журнал времени выполнения в веб-форме с помощью метки или текстового поля.

 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();
    }
 

введите описание изображения здесь

Ответ №1:

Попробуйте использовать asp:ScriptManager и asp:панель обновления.

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

Комментарии:

1. Это обновление логики сценария, и я добавил метку с отметкой времени, поэтому я мог видеть, как время обновляется каждую секунду, но как мне обновить @System. Диагностика. Отлаживать. Строковый аргумент WriteLine для метки

2. protected void UpdateTimer_Tick(отправитель объекта, метки событий e) { Label1. Текст = «Вызвано» Дата и время.Сейчас(). toString(); }

3. Да, это обновление выполняется { Label1. Текст = «Вызвано» Дата и время.Сейчас(). toString(); }