共用方式為


ASP.NET AJAX 擴充項控制項概觀

更新:2007 年 11 月

ASP.NET AJAX 擴充項控制項可加強標準 ASP.NET Web 伺服器控制項的用戶端功能。您可以使用一個或多個擴充項控制項,以標準 Web 伺服器控制項做為目標,例如 TextBox 控制項、Button 控制項和 Panel 控制項,在瀏覽器中提供更豐富的使用者經驗。例如,若要讓使用者在將表單送出至伺服器之前進行確認,您可以使用將用戶端功能加入至 Button 控制項的擴充項控制項。

您可以將 ASP.NET AJAX 擴充項控制項加入至 Visual Studio,然後以使用其他控制項的相同方式使用這些擴充項控制項。您可以建立自己的擴充項控制項,或從其他來源取得控制項。

擴充項控制項的來源之一是 ASP.NET AJAX Control Toolkit。Control Toolkit 提供範例和 SDK,可以簡單建立和重複使用自訂控制項和擴充項。您可以從 ASP.NET AJAX 網站下載 ASP.NET AJAX Control Toolkit。

重要事項:

ASP.NET AJAX Control Toolkit 是社群支援的程式庫,但 Microsoft 並不支援。本主題討論 Control Toolkit 中的擴充項控制項,示範如何使用擴充項控制項。不過,在閱讀這個主題的資訊時,請勿將這裡討論的擴充項控制項解譯為 ASP.NET 的正式部分或支援的控制項。

本主題包含與下列項目相關的資訊:

  • AJAX 擴充項控制項功能

  • 背景

  • 類別參考

功能

Visual Studio 支援下列擴充項控制項功能:

  • 加入擴充項控制項。

  • 移除擴充項控制項。

  • 設定擴充項控制項屬性。

  • 管理擴充項控制項。

回到頁首

背景

擴充項控制項可用來加強標準 Web 伺服器控制項的用戶端功能。擴充項控制項並非單獨使用,而是必須附加至另一個 ASP.NET Web 伺服器控制項。將擴充項控制項的 TargetControlID 屬性設定為被延伸之伺服器控制項的 ID,可讓擴充項控制項附加至 Web 伺服器控制項。

在 Visual Studio 中使用擴充項控制項

如果安裝 ASP.NET AJAX Control Toolkit,擴充項控制項會在 [工具箱] 中顯示在自己的索引標籤中。只有 Web 網頁會顯示 [工具箱] 的擴充項控制項區段,如同 [ 工具箱] 的 [標準] 區段一樣。

注意事項:

ASP.NET AJAX Control Toolkit 是社群支援的程式庫。不是 ASP.NET 的一部分。

加入擴充項控制項

在 [設計] 檢視中,您可以使用下列方法,將擴充項控制項加入至 Web 伺服器控制項:

  • 將擴充項控制項拖曳至 Web 伺服器控制項。擴充項控制項只能放在支援擴充項控制項的 Web 伺服器控制項上。在設計介面上拖曳擴充項控制項時,指標會指出擴充項控制項是否可放在 Web 伺服器控制項上。

  • 以滑鼠右鍵按一下 Web 伺服器控制項,然後按一下 [加入擴充項]。

  • 選取 [按鈕工作] 智慧標籤,然後按一下 [加入擴充項]。

    注意事項:

    在 [設計] 檢視中,擴充項控制項通常不會顯示。不過,如果發生與擴充項控制項相關的錯誤,就會顯示擴充項控制項。

在設計工具中加入擴充項時,擴充項控制項的 TargetControlID 屬性會設定為附加的 Web 伺服器控制項。擴充項控制項的名稱,取決於附加此控制項的 Web 伺服器控制項的名稱。

擴充項控制項可能支援您可設定的使用者介面 (UI) 項目。如果支援,您可以使用已擴充之 Web 伺服器控制項的智慧標籤設定這些項目。

附加至目標控制項的擴充項控制項,不會出現在設計介面中。如果擴充項控制項未附加至目標控制項,或在設計階段無法決定關聯,擴充項控制項會在設計介面上顯示成預留位置。會出現這種結果的情況包括:

如果擴充項控制項附加至有效的目標控制項,Visual Studio 會在 [屬性] 視窗中隱藏下列擴充項控制項屬性:

  • TargetControlID

  • EnableViewState (繼承自 Control)

  • ID (繼承自 Control)

如需如何將擴充項控制項加入至 Web 伺服器控制項的詳細資訊,請參閱逐步解說:ASP.NET AJAX 擴充項控制項

移除擴充項控制項

您可以執行下列動作,移除擴充項控制項與 Web 伺服器控制項之間的關聯:

  • 在 [設計] 檢視中,以滑鼠右鍵按一下 Web 伺服器控制項,按一下 [移除擴充項],然後選取您想要移除的擴充項控制項。

  • 在 [設計] 檢視中,選取 [按鈕工作] 智慧標籤,按一下 [移除擴充項],然後選取您想要移除的擴充項控制項。

  • 在 [原始碼] 檢視中刪除擴充項控制項標記。

擴充項控制項和 ScriptManager 控制項

ExtenderControl 類別衍生的擴充項控制項需要網頁上有 ScriptManager 控制項。ExtenderControl 基底類別會執行測試,以確定網頁上有 ScriptManager 控制項存在。

但是,如果您要建立不需要 ScriptManager 控制項的擴充項控制項,您可以建立能夠直接實作 IExtenderControl 介面的類別。此外,如果是建立從 Control 衍生的類別,或擴充從 Control 衍生的現有控制項,您可以自行實作 IExtenderControl 介面。

IExtenderControl 介面會呼叫 GetScriptReferences 方法,註冊控制項的指令碼程式庫。也會呼叫 GetScriptDescriptors 方法,註冊 ScriptDescriptor 物件。GetScriptDescriptors 方法會傳回 ScriptDescriptor 物件的 IEnumerable 清單。

注意事項:

若要擴充從 WebControl 類別衍生的現有控制項型別,請實作 IScriptControl 介面。

如需如何建立 ASP.NET AJAX 擴充項控制項的詳細資訊,請參閱將用戶端功能加入至 Web 伺服器控制項

AJAX Control Toolkit 中的擴充項控制項

下表說明 ASP.NET AJAX Control Toolkit 中可用的一些 AJAX 擴充項控制項。

注意事項:

ASP.NET AJAX Control Toolkit 是社群支援的程式庫。不是 ASP.NET 的一部分。程式庫的內容和個別控制項的功能可能隨時變更。

AJAX 擴充項控制項

描述

CascadingDropDown

動態填入 DropDownList 控制項,視另一個 DropDownList 控制項中的選取範圍而定。此擴充項控制項會附加至 DropDownList 控制項。

當一個 DropDownList 控制項的選取範圍變更時,CascadingDropDown 擴充項控制項會呼叫指定的 Web 服務來擷取值清單,用來填入集合中的下一個 DropDownList

CollapsiblePanelExtender

讓可摺疊選取範圍加入至 Web 網頁。

此擴充項控制項會附加至 UpdatePanel 控制項。

您可以指定可展開或摺疊 UpdatePanel 控制項的 Web 伺服器控制項。另外,UpdatePanel 可以設定為在使用者將滑鼠指標移至上方時自動展開或摺疊。

ConfirmButtonExtender

在按一下 Button 控制項之後、網頁或 UpdatePanel 送出至伺服器之前,顯示確認訊息方塊。如果使用者取消,則不會送出網頁。

此擴充項控制項會附加至 Button 控制項。

FilteredTextBoxExtender

防止使用者在 TextBox 控制項中輸入特定字元。

此擴充項控制項會附加至 TextBox 控制項。

ModalPopupExtender

可以顯示內容,但防止使用者與網頁的其餘部分互動。

這個擴充項控制項會附加至可用來開啟強制回應視窗的任何 Web 伺服器控制項。

PasswordStrength

顯示密碼的強度。

此擴充項控制項會附加至 TextBox 控制項。

RoundedCornersExtender

將圓角套用至現有的項目。

此擴充項控制項通常會附加至 Panel 控制項。

TextBoxWatermarkExtender

當文字方塊未包含文字值時,在 TextBox 控制項內顯示訊息。

此擴充項控制項會附加至 TextBox 控制項。

設定擴充項控制項屬性

您可以在 [屬性] 視窗中設定擴充項控制項屬性。部分擴充項控制項也提供額外的 UI 項目,您可以透過 Web 伺服器控制項的智慧標籤功能表存取這些 UI 項目。

當 Web 伺服器控制項擴充後,[屬性] 視窗會顯示一個名為 [擴充項] 的新分類。在這個區段中,每個已加入至 Web 伺服器控制項的擴充項控制項會顯示一個新的多層級屬性。每個擴充項控制項會提供該控制項特有的唯一屬性。

如需如何設定 Web 伺服器控制項屬性的詳細資訊,請參閱 HOW TO:啟用 Visual Web Developer 中的屬性視窗

管理擴充項控制項

因為擴充項控制項不會直接在 [設計] 檢視中顯示 UI,所以必須在加入擴充項控制項的控制項中加以管理。如果 Web 伺服器控制項移至不同位置,或放在另一個控制項內,附加的擴充項控制項也會隨之移動。

擴充項控制項的標記會直接放在 Web 伺服器控制項的標記後面。如果有多個擴充項控制項附加至 Web 伺服器控制項,則任何移動期間都會保持擴充項控制項的順序。這樣可以降低執行階段發生衝突的機會。

從設計介面刪除含有附加擴充項控制項的 Web 伺服器控制項時,也會刪除關聯的擴充項。如果在 [屬性] 視窗中變更含有附加擴充項控制項之 Web 伺服器控制項的 ID 屬性,則擴充項控制項的 TargetControlID 屬性和 ID 屬性也會更新以相符。

注意事項:

如果擴充項具有自訂 ID (例如您提供的 ID),當任何關聯的 Web 伺服器控制項的 ID 屬性變更時,擴充項的 ID 屬性不會變更。

如果將含有附加擴充項控制項的 Web 伺服器控制項剪下或複製到 [剪貼簿],[剪貼簿] 上的複本會包含關聯的擴充項控制項。這些擴充項控制項會複製成標記,並緊接在控制項後面。即使在原始碼中也一樣,擴充項標記與控制項不相連。貼上 Web 伺服器控制項時,也會貼上擴充項控制項。

如果擴充項控制項的標記引入錯誤,[設計] 檢視會顯示「呈現控制項時發生錯誤」的訊息。若要修正這個錯誤,請在 [原始碼] 檢視更正標記。

回到頁首

類別參考

下表顯示擴充項控制項的重要伺服器類別。

類別

描述

ExtenderControl

為擴充項控制項提供抽象基底類別。

IExtenderControl

定義擴充項控制項的行為。

回到頁首

請參閱

工作

逐步解說:ASP.NET AJAX 擴充項控制項