|
一、ASP.NET AJAX 控件概述 借助 ASP.NET AJAX 控件,使用很少的客戶端腳本或不使用客戶端腳本就能創(chuàng)建豐富的客戶端行為,如在異步回發(fā)過程中進行部分頁更新(在回發(fā)時刷新網(wǎng)頁的選定部分,而不是刷新整個網(wǎng)頁)和顯示更新進度。異步部分頁更新可避免整頁回發(fā)的開銷。 ScriptManager 控件 為啟用了 AJAX 的 ASP.NET 網(wǎng)頁管理客戶端腳本。 ScriptManagerProxy 控件 允許內(nèi)容頁和用戶控件等嵌套組件在父元素中已定義了 ScriptManager 控件的情況下將腳本和服務引用添加到網(wǎng)頁。 Timer 控件 在定義的時間間隔執(zhí)行回發(fā)。如果將 Timer 控件和 UpdatePanel 控件結(jié)合在一起使用,可以按照定義的間隔啟用部分頁更新。您還可以使用 Timer 控件來發(fā)布整個網(wǎng)頁。 UpdatePanel 控件 可用于生成功能豐富、以客戶端為中心的 Web 應用程序。通過使用 UpdatePanel 控件,可以執(zhí)行部分頁更新。 UpdateProgress 控件 提供有關(guān) UpdatePanel 控件中的部分頁更新的狀態(tài)信息。 所有 ASP.NET AJAX 控件都需要 web.config 文件中的特定設置才能正常運行。如果您試圖使用這些控件之一,但您的網(wǎng)站不包含所需的 web.config 文件,則網(wǎng)頁的“設計”視圖中本應顯示該控件之處會出現(xiàn)錯誤。在“設計”視圖中,如果您單擊處于該狀態(tài)的控件,則 Microsoft Expr 二、ScriptManager 控件 ScriptManager 控件為啟用了 AJAX 的 ASP.NET 網(wǎng)頁管理客戶端腳本。默認情況下,ScriptManager 控件會向網(wǎng)頁注冊 Microsoft AJAX Library 的腳本。這樣,客戶端腳本就能使用類型系統(tǒng)擴展插件,還能支持部分頁呈現(xiàn)和 Web 服務調(diào)用之類的功能。 方案 若要啟用 ASP.NET 的以下 AJAX 功能,必須在網(wǎng)頁中使用一個 ScriptManager 控件:Microsoft AJAX Library 的客戶端腳本功能和要發(fā)送到瀏覽器的任何自定義腳本。 部分頁呈現(xiàn)允許在不回發(fā)的情況下單獨刷新網(wǎng)頁上的各個區(qū)域。ASP.NET UpdatePanel、UpdateProgress 和 Timer 控件需要有 ScriptManager 控件才能支持部分頁呈現(xiàn)。 Web 服務的 JavaS 背景 當某網(wǎng)頁包含一個或多個 UpdatePanel 控件時,ScriptManager 控件會管理瀏覽器中的部分頁呈現(xiàn)。該控件通過與網(wǎng)頁生命周期進行交互來更新該網(wǎng)頁在 UpdatePanel 控件內(nèi)的組成部分。 ScriptManager 控件的 EnablePartialRendering 屬性確定網(wǎng)頁是否參與部分頁更新。默認情況下,EnablePartialRendering 屬性為真。因此,當您將 ScriptManager 控件添加到網(wǎng)頁時,會默認啟用部分頁呈現(xiàn)功能。 ScriptManagerProxy 類 一個網(wǎng)頁只能添加一個 ScriptManager 控件實例。該控件可直接包含在網(wǎng)頁中,也可以間接包含在用戶控件、母版頁的內(nèi)容頁或嵌套的母版頁等嵌套組件內(nèi)。如果某網(wǎng)頁已包含一個 ScriptManager 控件,但嵌套組件或父組件需要 ScriptManager 控件的其他功能,則該組件可以包括一個 ScriptManagerProxy 控件。例如,利用 ScriptManagerProxy 控件,可以添加專用于嵌套組件的腳本和服務。 三、Timer 控件 ASP.NET AJAX Timer 控件可按照定義的間隔執(zhí)行回發(fā)。如果將 Timer 控件和 UpdatePanel 控件結(jié)合在一起使用,可以按照定義的間隔啟用部分頁更新。您還可以使用 Timer 控件來發(fā)布整個網(wǎng)頁。 方案 當您要執(zhí)行以下操作時,可使用 Timer 控件: 定期更新一個或多個 UpdatePanel 控件的內(nèi)容而不刷新整個網(wǎng)頁。 每次 Timer 控件導致回發(fā)時在服務器上運行代碼。 按照定義的間隔將整個網(wǎng)頁同步發(fā)布到 Web 服務器。 背景 Timer 控件是一個服務器控件,用于將 JavaS 使用 Timer 控件時,網(wǎng)頁中必須包括 ScriptManager 類的實例。 當 Timer 控件啟動回發(fā)時,Timer 控件會在服務器上引發(fā) Tick 事件。您可以為 Tick 事件創(chuàng)建一個事件處理程序,以便將網(wǎng)頁發(fā)布到服務器時執(zhí)行操作。 設置 Interval 屬性來指定發(fā)生回發(fā)的頻率,并設置 Enabled 屬性來開啟或關(guān)閉 Timer。Interval 屬性以毫秒為單位,其默認值為 60,000 毫秒,即 60 秒。
如果不同的 UpdatePanel 控件必須在不同的時間間隔更新,則可以在網(wǎng)頁上加入多個 Timer 控件。此外,Timer 控件的單個實例可以是某網(wǎng)頁中多個 UpdatePanel 控件的觸發(fā)器。 在 UpdatePanel 控件內(nèi)部使用 Timer 控件 當 Timer 控件包含在 UpdatePanel 控件內(nèi)時,Timer 控件會自動充當該 UpdatePanel 控件的觸發(fā)器。通過將 UpdatePanel 控件的 ChildrenAsTriggers 屬性設置為 false,可阻止此行為。 如果 Timer 控件在 UpdatePanel 控件內(nèi),則僅當每個回發(fā)操作完成時才會重新創(chuàng)建 JavaS 在 UpdatePanel 控件外部使用 Timer 控件 當 Timer 控件在 UpdatePanel 控件之外時,必須將 Timer 控件顯式定義為要更新的 UpdatePanel 控件的觸發(fā)器。 如果 Timer 控件在 UpdatePanel 控件之外,則在處理回發(fā)的同時 JavaS 所設置的 Interval 屬性的值必須允許一個異步回發(fā)能在下次回發(fā)啟動前完成。如果上一個回發(fā)還在處理當中就啟動了新的回發(fā),則第一個回發(fā)會被取消。 四、UpdateProgress 控件 UpdateProgress 控件提供有關(guān) UpdatePanel 控件中的部分頁更新的狀態(tài)信息。您可以自定義 UpdateProgress 控件的默認內(nèi)容和布局。為防止在部分頁更新非??鞎r出現(xiàn)閃爍,可以指定在 UpdateProgress 控件顯示之前有一個延遲。 方案 利用 UpdateProgress 控件,在網(wǎng)頁包含一個或多個用于部分頁呈現(xiàn)的 UpdatePanel 控件時,您可以設計一個更直觀的用戶界面。如果部分頁更新速度較慢,您可以使用 UpdateProgress 控件來直觀地反映更新狀態(tài)。您可以在一個網(wǎng)頁上放置多個 UpdateProgress 控件,每個控件都與不同的 UpdatePanel 控件關(guān)聯(lián)。此外,也可以使用一個 UpdateProgress 控件,并將其與該網(wǎng)頁上的所有 UpdatePanel 控件關(guān)聯(lián)。 背景 UpdateProgress 控件將呈現(xiàn)一個 <div> 元素,該元素是顯示還是隱藏取決于關(guān)聯(lián)的 UpdatePanel 控件是否導致了異步回發(fā)。對于初始頁呈現(xiàn)和同步回發(fā),UpdateProgress 控件不顯示。 將 UpdateProgress 控件與 UpdatePanel 控件關(guān)聯(lián) 通過設置 UpdateProgress 控件的 AssociatedUpdatePanelID 屬性可將 UpdateProgress 控件與 UpdatePanel 控件相關(guān)聯(lián)。當某 UpdatePanel 控件發(fā)生回發(fā)事件時,會顯示所有關(guān)聯(lián)的 UpdateProgress 控件。如果不將 UpdateProgress 控件與特定的 UpdatePanel 控件相關(guān)聯(lián),則 UpdateProgress 控件會顯示任何異步回發(fā)的進度。 如果 UpdatePanel 控件的 ChildrenAsTriggers 屬性設置為假,并且該 UpdatePanel 控件內(nèi)部發(fā)生了一個異步回發(fā),則會顯示任何關(guān)聯(lián)的 UpdateProgress 控件。 創(chuàng)建 UpdateProgress 控件的內(nèi)容 若要指定 UpdateProgress 控件顯示的消息,請在“設計”視圖中將所需的內(nèi)容放置到面板中。例如,您可以將其他 ASP.NET 和 HTML 控件拖入面板,然后將光標置于面板內(nèi)并在面板中直接鍵入內(nèi)容。在“設計”視圖中向 UpdateProgress 控件添加消息時,系統(tǒng)會自動在內(nèi)容兩邊添加所需的 <ProgressTemplate> 標記。如果您是在“代碼”視圖而不是“設計”視圖中向 UpdateProgress 控件添加內(nèi)容,則必須手動添加 <ProgressTemplate></ProgressTemplate> 標記(如果它們尚不存在),否則不會呈現(xiàn)該消息。 指定內(nèi)容布局 當 DynamicLayout 屬性為真時,UpdateProgress 控件最初不會占據(jù)網(wǎng)頁顯示中的任何空間,而是在需要時網(wǎng)頁動態(tài)地更改為顯示 UpdateProgress 控件內(nèi)容。為支持動態(tài)顯示,該控件呈現(xiàn)為一個其顯示樣式屬性最初設置為無的 <div> 元素。 當 DynamicLayout 屬性為假時,UpdateProgress 控件會占用網(wǎng)頁顯示空間,即使該控件不可見也會占用。在這種情況下,該控件的 <div> 元素將其顯示樣式屬性設置為塊,將其可見性最初設置為隱藏。 將 UpdateProgress 控件置于網(wǎng)頁上 您可以將 UpdateProgress 控件置于 UpdatePanel 控件內(nèi)部或外部。只要其關(guān)聯(lián)的 UpdatePanel 控件因異步回發(fā)而更新,UpdateProgress 控件就會顯示。即使 UpdateProgress 控件在另一個 UpdatePanel 控件內(nèi)部也是如此。 如果 UpdatePanel 控件在另一個更新面板內(nèi)部,則子面板內(nèi)部發(fā)生的回發(fā)會導致與子面板關(guān)聯(lián)的所有 UpdateProgress 控件都顯示出來。它也會顯示所有與父面板關(guān)聯(lián)的 UpdateProgress 控件。如果回發(fā)發(fā)生在父面板的直接子控件中,則僅顯示與該父面板關(guān)聯(lián)的 UpdateProgress 控件。這種行為遵循了回發(fā)觸發(fā)方式的邏輯。 五、ScriptManagerProxy 控件 使用 ScriptManagerProxy 控件,內(nèi)容頁和用戶控件等嵌套組件可以在父元素中已定義了 ScriptManager 控件的情況下將腳本和服務引用添加到網(wǎng)頁。 一個網(wǎng)頁只能包含一個 ScriptManager 控件,該控件可直接位于網(wǎng)頁本身,也可以間接放置在嵌套的組件或父組件內(nèi)。利用 ScriptManagerProxy 控件,可以將腳本和服務添加到其母版頁或主機頁已包含 ScriptManager 控件的內(nèi)容頁和用戶控件。 當您使用 ScriptManagerProxy 控件時,可以添加 ScriptManager 控件定義的腳本和服務集合。如果不希望在包括特定 ScriptManager 控件的每個網(wǎng)頁上包括特定的腳本和服務,請將它們從 ScriptManager 控件中刪除,而改用 ScriptManagerProxy 控件將它們添加到單獨的網(wǎng)頁。 六、UpdatePanel 控件 ASP.NET UpdatePanel 控件可用于生成功能豐富、以客戶端為中心的 Web 應用程序。通過使用 UpdatePanel 控件,可以在回發(fā)期間刷新網(wǎng)頁的選定部分而不是刷新整個網(wǎng)頁。這稱為執(zhí)行部分頁更新。包含一個 ScriptManager 控件和一個或多個 UpdatePanel 控件的 ASP.NET 網(wǎng)頁,不需要使用自定義客戶端腳本即可自動參與部分頁更新。 方案 UpdatePanel 控件是一個服務器控件,借助它,可以開發(fā)出具有復雜客戶端行為的網(wǎng)頁,使網(wǎng)頁能夠更好地與最終用戶進行交互。編寫在服務器和客戶端進行協(xié)調(diào)以便只更新網(wǎng)頁指定部分的代碼通常需要深入了解 ECMAScript (JavaS 背景 UpdatePanel 控件的工作方式是指定可更新的網(wǎng)頁區(qū)域,而不刷新整個網(wǎng)頁。此過程由 ScriptManager 服務器控件和客戶端 PageRequestManager 類進行協(xié)調(diào)。當部分頁更新被啟用時,控件可異步發(fā)布到服務器。異步回發(fā)的行為類似于常規(guī)回發(fā),因為生成的服務器網(wǎng)頁執(zhí)行整個網(wǎng)頁和控件生命周期。但是,使用異步回發(fā),網(wǎng)頁更新被限制為 UpdatePanel 控件中包含的網(wǎng)頁區(qū)域以及被標記為要更新的區(qū)域。服務器僅向瀏覽器發(fā)送受影響元素的 HTML 標記。 啟用部分頁更新 UpdatePanel 控件要求網(wǎng)頁中有一個 ScriptManager 控件。默認情況下,當 ScriptManager 控件的 EnablePartialRendering 屬性的默認值為 true 時會啟用部分頁更新。 指定 UpdatePanel 控件的內(nèi)容 通過在“設計”視圖中將內(nèi)容放在面板中,可以向 UpdatePanel 控件添加內(nèi)容。例如,可以將其他 ASP.NET 和 HTML 控件拖入該面板,并將光標置于面板內(nèi)并直接在其中鍵入內(nèi)容。在“設計”視圖中向 UpdatePanel 控件添加內(nèi)容時,系統(tǒng)會自動在內(nèi)容兩邊添加必要的 <ContentTemplate></ContentTemplate> 標記。如果您是在“代碼”視圖而不是“設計”視圖中向 UpdatePanel 控件添加內(nèi)容,則必須手動添加 <ContentTemplate></ContentTemplate> 標記(如果它們尚不存在),否則不會呈現(xiàn) UpdatePanel 中的內(nèi)容。 當包含一個或多個 UpdatePanel 控件的網(wǎng)頁第一次呈現(xiàn)時,UpdatePanel 控件的所有內(nèi)容都將呈現(xiàn)并發(fā)送到瀏覽器。以后發(fā)生異步回發(fā)時,可能會分別更新各個 UpdatePanel 控件的內(nèi)容。更新取決于面板設置、哪些元素引發(fā)了回發(fā),以及每個面板特有的代碼。 指定 UpdatePanel 觸發(fā)器 默認情況下,UpdatePanel 控件內(nèi)的任何回發(fā)控件都會導致異步回發(fā)并刷新面板的內(nèi)容。但是,您也可以將網(wǎng)頁上的其他控件配置為刷新 UpdatePanel 控件。為此,需要為 UpdatePanel 控件定義觸發(fā)器。觸發(fā)器是指定哪個回發(fā)控件和事件導致面板更新的綁定。當發(fā)生觸發(fā)器控件的指定事件(例如,按鈕的 Click 事件)時,就會刷新更新面板。 您可以使用“UpdatePanelTrigger 集合編輯器”對話框為 UpdatePanel 控件創(chuàng)建觸發(fā)器,該對話框可從“標記屬性”任務窗格的“觸發(fā)器”屬性調(diào)出。 觸發(fā)器的控件事件是可選的。如果您不指定事件,觸發(fā)器事件是控件的默認事件。例如,對于 Button 控件,默認事件是 Click 事件。 如何刷新 UpdatePanel 控件 以下列表介紹的 UpdatePanel 控件的屬性設置決定在部分頁呈現(xiàn)過程中面板的內(nèi)容何時更新: 如果 UpdateMode 屬性設置為“Always”,則網(wǎng)頁的任何地方發(fā)生的每個回發(fā)都會導致 UpdatePanel 控件內(nèi)容進行更新。其中包括其他 UpdatePanel 控件內(nèi)的控件引發(fā)的異步回發(fā),以及不在 UpdatePanel 控件內(nèi)的控件引發(fā)的回發(fā)。 如果 UpdateMode 屬性設置為“Conditional”,則當以下其中一項為真時 UpdatePanel 控件的內(nèi)容會得到更新: 當回發(fā)是由該 UpdatePanel 控件的觸發(fā)器所引起時。 當您顯式調(diào)用 UpdatePanel 控件的 Update 方法時。 當 UpdatePanel 控件嵌套在另一個 UpdatePanel 控件內(nèi)且父面板發(fā)生更新時。 當 ChildrenAsTriggers 屬性設置為真且該 UpdatePanel 控件的任何子控件導致回發(fā)時。嵌套的 UpdatePanel 控件的子控件不會導致外部 UpdatePanel 控件發(fā)生更新,除非它們被顯式定義為父面板的觸發(fā)器。 如果 ChildrenAsTriggers 屬性設置為 false 且 UpdateMode 屬性設置為“Always”,則會引發(fā)異常。僅當 UpdateMode 屬性設置為“Conditional”時,才能使用 ChildrenAsTriggers 屬性。 使用嵌套的 UpdatePanel 控件 UpdatePanel 控件可以嵌套。如果父面板被刷新,則所有嵌套的面板都會刷新。如果子面板被刷新,則僅該子面板會更新。 與 UpdatePanel 控件不兼容的控件 下面的 ASP.NET 控件與部分頁更新不兼容,因此,不能用在 UpdatePanel 控件內(nèi): 在以下幾種情況下的 Treeview 控件:一種是當回調(diào)不是作為異步回發(fā)的一部分啟用時;一種是您直接將樣式設置為控件屬性,而不是使用對 CSS 樣式的引用隱式為控件設置樣式時;另一種是 EnableClientScript 屬性為 false(默認值為 true)時;還有一種是您在兩次異步回發(fā)之間更改 EnableClientScript 屬性的值時。 Menu 控件:當您直接將樣式設置為控件屬性,而不是使用對 CSS 樣式的引用隱式為該控件設置樣式時。 FileUpload 和 HtmlInputFile 控件:當它們用來作為異步回發(fā)一部分的上載文件時。 其 EnableSortingAndPagingCallbacks 屬性被設置為 true 時的 GridView 和 DetailsView 控件。默認值為 false。 其內(nèi)容尚未被轉(zhuǎn)換為可編輯模板的 Login、PasswordRecovery、ChangePassword 和 CreateUserWizard 控件。 Substitution 控件。 若要將 FileUpload 或 HtmlInputFile 控件用在 UpdatePanel 控件內(nèi),請將提交該文件的回發(fā)控件設置為該面板的 PostBackTrigger 控件。FileUpload 和 HtmlInputFile 控件可以僅用在回發(fā)情況下。 所有其他控件均可用在 UpdatePanel 控件內(nèi)。 在 UpdatePanel 控件內(nèi)使用 Web 部件控件 ASP.NET Web 部件是一組集成控件,用于創(chuàng)建網(wǎng)站使最終用戶可以直接從瀏覽器修改網(wǎng)頁的內(nèi)容、外觀和行為。只要遵守以下限制,可以在 UpdatePanel 控件內(nèi)使用 Web 部件控件: 每個 WebPartZone 控件都必須在同一個 UpdatePanel 控件內(nèi)。例如,網(wǎng)頁上不能有兩個 UpdatePanel 控件,而每個控件又都有其自己的 WebPartZone 控件。 WebPartManager 控件管理 Web 部件控件的所有客戶端狀態(tài)信息。它必須在網(wǎng)頁上最外面的 UpdatePanel 控件內(nèi)。 不能使用異步回發(fā)來導入或?qū)С?Web 部件控件。(執(zhí)行此任務需要一個 FileUpload 控件,它不能用于異步回發(fā)。)默認情況下,導入 Web 部件控件會執(zhí)行完整回發(fā)。 在異步回發(fā)過程中,不能添加或修改 Web 部件控件的樣式。
教程:如何創(chuàng)建包含兩個獨立更新的區(qū)域的網(wǎng)頁 在本教程中,您將在一個網(wǎng)頁中使用多個 UpdatePanel 控件。通過在一個網(wǎng)頁上使用多個 UpdatePanel 控件,您可以按照遞增的方式單獨更新或一起更新該網(wǎng)頁的各個區(qū)域。 創(chuàng)建包含兩個獨立更新的區(qū)域的網(wǎng)頁 1、在“文件”菜單上,指向“新建”,然后單擊“ASPX”。 2、將光標置于 ASPX 網(wǎng)頁的“設計”視圖中。 3、在“工具箱”任務窗格中,在“ASP.NET 控件”下的“AJAX”下,雙擊要添加到該網(wǎng)頁的“ScriptManager”控件。 4、在“工具箱”任務窗格中,在“ASP.NET 控件”下的“AJAX”下,雙擊“UpdatePanel”控件兩次,將兩個 UpdatePanel 控件添加到該網(wǎng)頁。 5、選中網(wǎng)頁中的一個 UpdatePanel 控件,在“標記屬性”任務窗格中,將“UpdateMode”屬性設置為“Conditonal”。對另一個 UpdatePanel 控件重復此步驟。 6、在“工具箱”任務窗格中,在“ASP.NET 控件”和“標準”類別下,將“Label”控件拖到“設計”視圖中的一個 UpdatePanel 控件中。 7、選中網(wǎng)頁中的“Label”控件,在“標記屬性”任務窗格中,將“Text”屬性設置為“Panel Created”。 8、在“工具箱”任務窗格中,在“ASP.NET 控件”和“標準”類別下,將“Button”控件拖到包含“Label”控件的同一個 UpdatePanel 控件中。選中網(wǎng)頁中的該按鈕,在“標記屬性”任務窗格中,將“Text”屬性設置為“Refresh Panel”。 9、在“工具箱”任務窗格中,在“ASP.NET 控件”和“標準”類別下,將“Calendar”控件拖到“設計”視圖中的另一個 UpdatePanel 控件中。 protected void Button1_Click(object sender, EventArgs e) { Label1.Text = "Panel refreshed at " + DateTime.Now.ToString(); } 10、按 F12 在您的 Web 瀏覽器中預覽該網(wǎng)頁。在 Web 瀏覽器中的該網(wǎng)頁中,單擊該按鈕。面板中的文本將更改,以顯示該面板的內(nèi)容上次刷新的時間。在日歷中,移到其他月份。另一個面板中的時間不會更改。這兩個面板的內(nèi)容會單獨更新。 回顧 本教程介紹了在一個網(wǎng)頁中使用多個 UpdatePanel 控件的概念。當 UpdatePanel 控件不嵌套時,您可以通過將 UpdateMode 屬性設置為“Conditional”來獨立更新每個面板。(UpdateMode 屬性的默認值為“Always”。這將導致面板在任何異步回發(fā)后進行刷新。) 當面板嵌套時,行為稍有不同。如果將外部控件和嵌套控件的 UpdateMode 屬性均設置為“Conditional”,則可在不刷新外部面板的情況下刷新內(nèi)部面板。但是,如果刷新外部更新面板,則內(nèi)部更新面板也會刷新。
教程:如何在規(guī)定的時間間隔刷新 UpdatePanel 控件 在本演練中,您將使用以下三個 ASP.NET AJAX 服務器控件來在規(guī)定的時間間隔更新網(wǎng)頁的組成部分:即 ScriptManager 控件、UpdatePanel 控件和 Timer 控件。向網(wǎng)頁中添加這些控件后,就不必在每次回發(fā)時刷新整個網(wǎng)頁。只有 UpdatePanel 控件的內(nèi)容會更新。 在規(guī)定的時間間隔刷新 UpdatePanel 控件 1、在“文件”菜單上,指向“新建”,然后單擊“ASPX”。 2、將光標置于 ASPX 網(wǎng)頁的“設計”視圖中。 3、在“工具箱”任務窗格中,在“ASP.NET 控件”下的“AJAX”下,雙擊要添加到該網(wǎng)頁的“ScriptManager”控件。 4、在“工具箱”任務窗格中,在“ASP.NET 控件”下的“AJAX”下,雙擊要添加到該網(wǎng)頁的 UpdatePanel 控件。 5、將光標放在“設計”視圖中的 UpdatePanel 控件內(nèi)。 6、在“工具箱”任務窗格中,在“ASP.NET 控件”和“AJAX”類別下,雙擊“Timer”控件,將其插入網(wǎng)頁中的 UpdatePanel 控件中。
7、在網(wǎng)頁中選中 Timer 控件,在“標記屬性”任務窗格中,將“間隔”屬性設置為 10000。“間隔”屬性以毫秒為單位,因此,將“間隔”屬性設置為 10,000 毫秒會每隔 10 秒鐘刷新一次該 UpdatePanel 控件。
8、將光標放在“設計”視圖中的 UpdatePanel 控件內(nèi)。 9、在“工具箱”任務窗格中,在“ASP.NET 控件”和“標準”類別下,雙擊“Label”控件,將其插入 UpdatePanel 控件中。 10、選中您網(wǎng)頁中的“Label”控件,在“標記屬性”任務窗格中,在“文本”框中,鍵入“面板尚未刷新”。將光標放在 UpdatePanel 控件之外。 11、在“工具箱”任務窗格中,在“ASP.NET 控件”和“標準”類別下,雙擊“Label”控件,向該網(wǎng)頁插入第二個標簽。
protected void Timer1_Tick(object sender, EventArgs e) { Label1.Text = "Panel refreshed at: " +DateTime.Now.ToLongTimeString(); } 12、按 F12 在您的 Web 瀏覽器中預覽該網(wǎng)頁。等待至少 10 秒,以便 UpdatePanel 面板得到刷新。面板內(nèi)的文本將更改,以顯示上次刷新該面板的內(nèi)容的時間。但是,面板外部的文本不會刷新。 本演練介紹了如何使用 Timer 控件和 UpdatePanel 控件來啟用部分頁更新的基本概念。您必須將 ScriptManager 控件添加到任一包含 UpdatePanel 控件或 Timer 控件的網(wǎng)頁中。默認情況下,面板內(nèi)的 Timer 控件將導致在異步回發(fā)過程中僅刷新該面板。如果將面板外的 Timer 控件配置為該面板的觸發(fā)器,則會導致刷新 UpdatePanel。 |
|
|
來自: 悟靜 > 《.net和asp.net》