共用方式為


ASP.NET Web 伺服器控制項概觀

更新:2007 年 11 月

當您在建立 ASP.NET Web 網頁時,可以使用以下幾種控制項:

  • HTML 伺服器控制項:公開至伺服器的 HTML 項目,這樣您才能為它們設計程式。HTML 伺服器控制項會將與它們所呈現的 HTML 項目之間有密切對應的物件模型 (Object Model) 公開。

  • Web 伺服器控制項:比 HTML 伺服器控制項具有更多內建功能的控制項。Web 伺服器控制項不只包括像按鈕和文字方塊的表單控制項,還包括像月曆、功能表和樹狀檢視控制項等特殊用途的控制項。Web 伺服器控制項比 HTML 伺服器控制項更抽象,因為它們的物件模型不一定會反映 HTML 語法。

  • 驗證控制項:併入邏輯讓您驗證使用者對輸入控制項 (例如 TextBox 控制項) 所輸入內容的控制項。驗證控制項可讓您檢查必要的欄位、依照特定的值或字元模式進行測試、驗證值是否在範圍之內等等。如需詳細資訊,請參閱驗證 ASP.NET 控制項

  • 使用者控制項:您建立做為 ASP.NET Web 網頁的控制項。您可以在其他 ASP.NET Web 網頁中嵌入 ASP.NET 使用者控制項,這種方式可以很容易地建立工具列和其他可重複使用的項目。如需詳細資訊,請參閱 ASP.NET 使用者控制項

    注意事項:

    您也可為行動裝置建立輸出。若要這樣做,需使用相同的 ASP.NET 網頁架構,但您會建立 Mobile ASP.NET Web 網頁而不會建立 ASP.NET Web 網頁,而且會使用特別為行動裝置設計的控制項。如需詳細資訊,請參閱建立 ASP.NET Mobile Web 網頁

您可以在同一個網頁上使用各種類型的控制項。以下章節提供 ASP.NET 伺服器控制項的詳細資訊。

注意事項:

在某些情況下,伺服器控制項需要用戶端指令碼才能正常作用。如果使用者停用瀏覽器中的指令碼,則控制項可能無法如預期地作用。如需詳細資訊,請參閱 ASP.NET Web 伺服器控制項和瀏覽器能力

HTML 伺服器控制項

HTML 伺服器控制項是 HTML 項目 (或是其他支援之標記中的項目,例如 XHTML),其中會包含可在伺服器程式碼中進行程式設計之項目的屬性 (Attribute)。根據預設,伺服器無法使用 ASP.NET Web 網頁上的 HTML 項目。不過,會將這些項目視為不透明文字並傳遞至瀏覽器。但是,如果將 HTML 項目轉換為 HTML 伺服器控制項,便會將它們公開為可在伺服器上使用來進行程式設計的項目。

HTML 伺服器控制項的物件模型與對應項目的物件模型之間有密切的對應。例如,HTML 屬性 (Attribute) 會以屬性 (Property) 的形式公開在 HTML 伺服器控制項中。

透過加入 屬性,網頁上的任何 HTML 項目都可以轉換為 HTML 伺服器控制項。在剖析期間,ASP.NET 網頁架構會建立含有 屬性之所有項目的執行個體。如果您希望在程式碼中將控制項當做成員參考,那麼也應該將 id 屬性指派給控制項。

網頁架構會提供網頁上最常動態使用之 HTML 項目的預先定義 HTML 伺服器控制項:form 項目、input 項目 (文字方塊、核取方塊、送出按鈕)、select 項目等等。這些預先定義的 HTML 伺服器控制項會共用泛用控制項的基本屬性 (Property),此外,每個控制項通常也會提供自己的屬性 (Property) 集和事件。

HTML 伺服器控制項提供以下功能:

  • 您可以使用熟悉的物件導向技術對伺服器進行程式設計的物件模型。每個伺服器控制項都會公開屬性 (Property),讓您以程式設計的方式在伺服端程式碼中操作控制項的標記屬性 (Attribute)。

  • 您可以用十分類似在用戶端架構表單中撰寫事件處理常式的方法,來為一組事件撰寫事件處理常式,唯一的不同是事件的處理會在伺服端程式碼中進行。

  • 處理用戶端指令碼中之事件的能力。

  • 自動維護控制項的狀態。當網頁往返於伺服器時,使用者輸入 HTML 伺服器控制項的值就會自動受到維護並送回至瀏覽器。

  • 與 ASP.NET 驗證控制項之間的互動,讓您可以驗證使用者已輸入適當的資訊到控制項中。

  • 將資料繫結 (Data Binding) 至控制項其中之一或一個以上的屬性 (Property)。

  • 如果 ASP.NET Web 網頁顯示在支援階層式樣式表的瀏覽器中,則會提供樣式支援。

  • 自訂屬性 (Attribute) 的傳遞。您可以將任何所需的屬性加入至 HTML 伺服器控制項,網頁架構將呈現它們,且不會變更任何功能。這可讓您將瀏覽器專屬的屬性加入至控制項。

如需如何將 HTML 項目轉換為 HTML 伺服器控制項的詳細資訊,請參閱 HOW TO:使用 ASP.NET 語法加入 HTML 伺服器控制項至 Web 網頁

Web 伺服器控制項

Web 伺服器控制項是第二組控制項,其設計重點則與前述的控制項有所不同。它們不全然會一對一地對應至 HTML 伺服器控制項。相反地,在這些被定義為抽象之控制項其中所呈現出的實際標記,和您進行程式設計的模型之間很可能會截然不同。例如,RadioButtonList Web 伺服器控制項可以在表格中呈現,或用其他標記呈現為內嵌 (Inline) 文字。

Web 伺服器控制項包括傳統的表單控制項 (例如按鈕和文字方塊) 以及複雜的控制項 (例如表格)。它們也包括可提供常用表單功能的控制項,例如在方格內顯示資料、選擇日期、顯示功能表等等。

Web 伺服器控制項會提供上述 HTML 伺服器控制項的所有功能 (除了一對一對應到項目至之外) 和以下其他功能:

  • 提供型別安全程式設計功能的多樣化物件模型。

  • 自動瀏覽器偵測。控制項可以偵測瀏覽器功能,然後呈現適當的標記。

  • 使用 Templates 來定義您個人對控制項之配置的能力 (僅限特定控制項)。

  • 指定控制項的事件是否會將結果立即張貼到伺服器,還是會先存入快取,然後在頁面送出時才引發的能力 (僅限特定控制項)。

  • 主題支援,可讓您定義整個站台之控制項,使他們均具備一致的外觀。如需詳細資訊,請參閱 ASP.NET 佈景主題和面板

  • 將事件從巢狀控制項 (例如表格中的按鈕) 傳送到容器 (Container) 控制項的能力。

控制項會使用如下所示的語法:

<asp:button attributes  id="Button1" />

此例中的屬性 (Attribute) 並不是 HTML 項目的屬性 (Attribute),而是 Web 控制項的屬性 (Property)。

ASP.NET Web 網頁在執行 時,會利用適當的標記在頁面上呈現 Web 伺服器控制項,這通常不只取決於瀏覽器類型,還會依據您為控制項所做的設定來決定。例如,TextBox 控制項會根據其屬性轉譯為 input 標記或 textarea 標記。

您也能獲得個別控制項之詳細使用方法和參考文件。

請參閱

概念

ASP.NET Web 伺服器控制項概觀