設計時支持之ASP.NET 控件設計器概述

ASP.NET 控件設計器概述

 

ASP.NET 增強了對創建 Web 服務器控件的設計器的支持。設計器使您可以爲控件生成設計時用戶界面 (UI),使得開發人員可以在可視設計工具(如 Microsoft Visual Studio 2005)中配置控件的屬性和內容。有關 .NET Framework 所提供的設計時結構和功能的背景信息,請參見擴展設計時支持

本簡介解釋了 ASP.NET 控件設計器的功能、基本設計器類及其功能和使用設計器的方案。

設計器功能

ASP.NET 2.0 版繼續支持早期版本的控件設計器結構,它還作了重大的改進。

  • 基於區域的編輯。區域是控件設計時視圖中的可編輯區域。該功能提供了設計時對控件內容的 WYSIWYG 編輯。

  • 操作表。操作表是控件的頁面開發人員可以在設計時 UI 中使用的任務菜單。例如,控件的設計時視圖可以提供可用任務菜單,包括自動設置控件格式的任務。

  • 數據源和數據綁定設計器。數據源控件設計器使得頁面開發人員可以配置數據源控件。數據綁定控件設計器使得頁面開發人員可以配置數據綁定控件。提供了一些功能,可用於實現數據源設計器和數據綁定設計器之間的相互通信。有關數據源控件設計器的示例,請參見 DataSourceDesigner。有關數據綁定控件設計器的示例,請參見 HierarchicalDataBoundControlDesigner

  • 簡化的模板編輯。爲模板化控件(如 GridView)的設計時編輯創建 UI 的模型,已極大地簡化和修改,使得控件開發人員可以選擇用區域執行自己的模板編輯。有關示例,請參見模板化服務器控件示例

  • 簡化的對象模型。已簡化使用設計時呈現的對象模型,使得開發人員必須關心的唯一重要的問題是生成設計時 HTML。幾個新的基類提供對簡化的對象模型的訪問:ControlDesignerContainerControlDesignerCompositeControlDesigner

  • 訂閱主機服務。控件設計器可以訂閱和使用宿主環境所提供的各種服務。例如,控件設計器可以使用 Visual Studio 2005 服務提供對數據的訪問、提供對配置的訪問、設計時以編程方式向頁面添加控件、處理設計器中的 Click 事件、繪製設計圖面和訪問其他服務(如設計器狀態)。

設計器類

通過充當運行時控件和宿主環境之間的調節器,控件設計器啓用 Web 服務器控件的設計時呈現。在宿主環境內部,設計器提供下面的功能幫助您爲控件的用戶創建設計時 UI:

  • 設計時呈現和內容。控件設計器啓用多種呈現,包括簡單呈現和複雜呈現。基於區域的編輯和模板編輯是可以爲控件提供的多種設計時 UI 的示例。還可以在控件上提供列編輯或多個運行時視圖,因此設計時使用該控件的開發人員可以就如何在運行時呈現控件從一組選項中進行選擇。

  • 其他設計時類。除了設計器類之外,還有與類型或屬性關聯且執行類型轉換(從字符串到值的轉換)的類型轉換器類。還有爲編輯屬性提供專用 UI 的 UI 類型編輯器類。例如,屬性窗格中的顏色選取器下拉列表使您可以爲 Web 控件上的顏色屬性選擇一種顏色。還可以創建專用的組件編輯器,它是提供對控件的屬性進行整體編輯的類。

  • 關聯控件的數據的持久性。控件的內部屬性和內容可以保持,因此該控件及其子控件在設計時環境中可保持狀態。這由標記中配置控件定義的方式控制。

爲 Web 服務器控件創建控件設計器時,有幾個可能要使用的基類:

使用設計器的方案

有兩種可能使用控件設計器的常見方案:開發自定義控件和開發可視設計工具。

如果開發自定義 Web 服務器控件,可以創建關聯的設計器來提高頁面開發人員在設計時配置控件的能力。如果該控件可能被許多頁面開發人員重用,則該方案尤其有用。例如,可能創建自定義圖表控件。如果提供關聯的控件設計器,則不同的 Intranet 頁面開發人員中每個人都可以用不同的樣式在頁面上配置控件。

如果開發一種與 Visual Studio 2005 或 Microsoft FrontPage 類似的可視 Web 設計工具,則可以使用控件設計器承載組件。這將使您的工具能夠提供服務和與控件設計器交互,從而爲自定義控件提供設計時呈現。

有關 .NET Framework 設計器結構的更多信息,請參見設計時結構。有關爲自定義 Web 服務器控件創建自己的設計器的詳細信息,請參見演練:爲 Web 服務器控件創建基本控件設計器

支持多種開發工具

Microsoft Visual Web Developer 支持在本主題中討論的所有功能,但是其他開發工具可能不支持。可能不被支持的功能的一些示例爲:

請參見

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章