逐步解說:Timer 控制項簡介
更新:2007 年 11 月
本逐步解說中,您要利用下列三個 ASP.NET AJAX 伺服器控制項,依時間間隔來更新部分 Web 網頁:ScriptManager 控制項、UpdatePanel 控制項及 Timer 控制項。把這些控制項加入至頁面,可讓您在每次回傳時就不必重新整理整個頁面。只會更新 UpdatePanel 控制項的內容。
如需網頁局部呈現的詳細資訊,請參閱網頁局部呈現概觀。
必要條件
若要實作本逐步解說中的程序,您需要:
Microsoft Visual Studio 2005 或 Visual Web Developer Express 版。
具備 AJAX 能力的 ASP.NET 網站。
依時間間隔來重新整理 UpdatePanel 控制項
在 Microsoft Visual Studio 2005 或 Visual Web Developer Express 版中建立新的具備 AJAX 能力的 ASP.NET Web 網頁,並切換至 [設計] 檢視。
如果頁面尚未包含 ScriptManager 控制項,請在工具箱的 [AJAX 擴充功能] 索引標籤中按兩下 ScriptManager 控制項,以便將該控制項加入至頁面。
在工具箱中按兩下 UpdatePanel 控制項,將其加入至頁面。
按一下 UpdatePanel 控制項內部,然後按兩下 Timer 控制項,將其加入至 UpdatePanel 控制項。
注意事項: Timer 控制項無論是位於 UpdatePanel 控制項的內部或外部,都可做為觸發程序。本範例說明如何使用 UpdatePanel 控制項內部的 Timer 控制項。有關如何使用 UpdatePanel 控制項外部的 Timer 控制項來做為觸發程序,請參考逐步解說:搭配多個 UpdatePanel 控制項使用 ASP.NET Timer 控制項 的範例。
將 Timer 控制項的 Interval 屬性設定為 10000。
Interval 屬性定義是以毫秒為單位,因此將 Interval 屬性設定為 10,000 毫秒,將每隔 10 秒重新整理 UpdatePanel 控制項一次。
注意事項: 在本範例中,計時器間隔設定為 10 秒。這是為了讓您在執行範例時,不必等太久就能看到結果。然而,每個計時器間隔都會回傳至伺服器,並造成網路流量。因此,在實際執行應用程式時,您應該將計時器間隔設定成適合應用程式的最長時間。
按一下 UpdatePanel 控制項內部,然後在工具箱的 [標準] 索引標籤下,按兩下 Label 控制項,將它加入至 UpdatePanel 控制項。
注意事項: 請確定您已將 Label 控制項加到 UpdatePanel 控制項內部。
將標籤的 Text 屬性設定為 [UpdatePanel 尚未重新整理]。
按一下 UpdatePanel 控制項外部,然後按兩下 Label 控制項,將第二個標籤加入至 UpdatePanel 控制項外部。
注意事項: 請確定您已將第二個 Label 控制項加到 UpdatePanel 控制項外部。
加入程式碼,將 Label1 控制項的 Text 屬性設定成目前時間。
建立 Page_Load 處理常式並加入程式碼,將 Label2 控制項的 Text 屬性設定成頁面建立的時間。
切換至原始碼檢視。
請確定頁面的標記如下:
Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label2.Text = "Page created at: " & _ DateTime.Now.ToLongTimeString() End Sub Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Label1.Text = "Panel refreshed at: " & _ DateTime.Now.ToLongTimeString() End Sub End Class
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label2.Text = "Page created at: " + DateTime.Now.ToLongTimeString(); } protected void Timer1_Tick(object sender, EventArgs e) { Label1.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString(); } }
儲存變更,然後按 CTRL+F5 在瀏覽器中檢視頁面。
等待至少 10 秒鐘,讓面板重新整理。
面板內的文字會變更成顯示面板內容上次重新整理的時間。但面板外的文字不會重新整理。
檢閱
本逐步解說介紹一些基本概念,指導您使用 Timer 控制項及 UpdatePanel 控制項來啟用網頁局部更新功能。頁面上如果有 UpdatePanel 控制項或 Timer 控制項,則必須加入 ScriptManager 控制項。根據預設,非同步回傳時,面板內部的 Timer 控制項只會引發面板重新整理。如果將面板外部的 Timer 控制項設定成面板的觸發程序,則它也能引發 UpdatePanel 重新整理。
下一個步驟是要學習如何使用 UpdatePanel 控制項外部的 Timer 控制項,以及如何使用計時器來更新多個 UpdatePanel 控制項。詳細資訊請參閱逐步解說:搭配多個 UpdatePanel 控制項使用 ASP.NET Timer 控制項。