簡體   English   中英

如何更新 c# blazor web 頁面中的實時日期時間

[英]How Can i update the live date time in c# blazor web page

我正在嘗試在 blazor 網頁中設置實時日期時間。 我嘗試使用 Datetime.now。 它沒有更新實時時間。 我想在不使用 javascript 的情況下做到這一點。

關於這個問題的任何幫助?

你需要一個定時器。 我能想到的最短樣本:

@page "/"
@using System.Threading    
@implements IDisposable

<p>@theTime</p>

@code{

    string theTime;    
    Timer aTimer;

    protected override void OnInitialized()
    {
        aTimer = new Timer(Tick, null, 0, 1000);        
    }

    private void Tick(object _)
    {
        theTime = DateTime.Now.ToLongTimeString();
        InvokeAsync(StateHasChanged);
    }

    public void Dispose()
    {
        aTimer?.Dispose();
    }
}

類似的,使用“System.Timers”

@page "/digitalclock"
@using System.Timers
@implements IDisposable

<PageTitle>Digital Clock</PageTitle>

<h1>@currentTime</h1>

@code {
   private string currentTime = DateTime.Now.ToString("HH:mm:ss tt");
   
   private Timer? secondsTimer;

   protected override void OnInitialized()
   {
      //one second interval
      secondsTimer = new Timer(1000);
      secondsTimer.Enabled = true;
      secondsTimer.AutoReset = true;
      secondsTimer.Elapsed += (sender, e) => UpdateTime();
   }

  private void UpdateTime()
  {
     currentTime = DateTime.Now.ToString("HH:mm:ss tt");
     InvokeAsync(() =>
     {
         StateHasChanged();
     });
  }

  public void Dispose()
  {
      secondsTimer?.Dispose();
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM