配接器類型
更新:2007 年 11 月
為了支援多個裝置,ASP.NET Mobile Web 網頁架構是以裝置配接器模型為基礎建置的。Mobile Web 網頁和 ASP.NET Mobile 控制項本身都是與裝置無關 (Device-Independent),但是一組適當選擇的裝置配接器將可針對行動網頁和控制項提供裝置的特定展示層。
裝置配接器與個別控制項和目標裝置的組合相關聯。針對任何提供的裝置,每個行動控制項類別可以有唯一與其相關聯之控制項配接器類別,而每個控制項的執行個體會繫結至相對應的配接器執行個體。
針對每個裝置的類型,您可以定義下列類別:
控制項配接器基底類別。所有裝置配接器繼承的基底類別 (Base Class)。
頁面配接器。與頁面相關聯的配接器。
表單配接器。與頁面上每個表單相關聯的控制項配接器。
控制項配接器。對應於系統中控制項的控制項配接器類別。
文字寫入器。繼承自 HtmlTextWriter 類別的類別,其中包含目標的特定 Helper 方法。
如同一般規則,如果某些功能需要控制項的內容,您可能需要考慮將其放置在控制項配接器基底類別中。
下表列出配接器的類型,再加上每個配接器之裝置特定實作類別的一些範例。
配接器和類別類型 |
ASP.NET Mobile 控制類別 |
說明 |
---|---|---|
控制項配接器基底類別 |
所有裝置配接器繼承自此基底類別 |
|
頁面配接器 |
與頁面相關聯的配接器 |
|
表單配接器 |
與頁面上每個表單相關聯的控制項配接器 |
|
控制項配接器 |
對應於系統中控制項的控制項配接器類別 |
|
文字寫入器 |
繼承自 HtmlTextWriter 的類別,其中包含目標的特定 Helper 方法 |
控制項配接器基底類別
每組裝置配接器一般都會在集合中包含所有配接器的基底類別。ControlAdapter 基底類別會提供裝置類別特定的常用功能。它通常會包含需要控制項或頁面內容的 Helper 方法。這些 Helper 方法包括:
呈現控制項傳回事件的方法。
呈現控制項樣式屬性的方法。每個裝置處理樣式屬性的方法不同,所以每個配接器也會有不同的樣式呈現實作。
可覆寫的方法提供裝置特定 ASP.NET 網頁架構的資訊,或是包含頁面或表單之配接器的資訊。
存取包含頁面或表單的配接器之方便屬性。
建議您提供也是繼承自屬於一般基底類別之 ControlAdapter 類別的控制項配接器基底類別。這個類別會提供所有配接器都需要之 IControlAdapter 介面的預設實作 (Implementation)。因此,基底類別的預設呈現實作,建議採呈現出全部子控制項的作法。這樣您便可以將此基底類別當作複合控制項 (Composite Control) 的配接器使用。
頁面配接器類別
每組裝置配接器都有一個與行動網頁本身相關聯的頁面配接器類別。每個行動網頁的執行個體,或是繼承自 MobilePage 物件的頁面類別,都會繫結至目標裝置的特定頁面配接器。頁面配接器通常會包含下列項目:
裝置的特定回傳和檢視狀態功能。
儲存和載入裝置特定控制項狀態的方法,如重新編頁資訊。
準備傳回至用戶端之回應的初始化程式碼。這包含了將回應的 MIME 類型設定至適當的格式。
可呈現傳回至用戶端之頁面基本架構 (Skeleton) 的 Render 方法。例如,HTML 架構頁面配接器通常至少會呈現 <html> 的開頭與結尾標記。
其他裝置特定的頁面層級功能,例如組合支援在單一回應中傳回多重頁面能力的裝置頁面配接器。
頁面配接器類別必須提供 IPageAdapter 介面的完整實作。通常您撰寫之頁面配接器類別也必須繼承自適當的控制項配接器類別。例如,如果您只針對 WML 架構裝置進行撰寫,您可能需要繼承自 WmlControlAdapter 類別。如需配接器類別的詳細資訊,請參閱裝置配接器程式碼。
表單配接器類別
每組裝置配接器也都具有與 Form 類別相關聯的表單配接器類別。每個表單的執行個體都繫結至目標裝置特定的表單配接器。表單配接器通常會包含下列項目:
互動式處理裝置特定表單的方法。
處理單一表單配接至不同裝置的方法。可能包含重新對表單重新編頁,或將表單項目組合至功能表中的程式碼。
可呈現表單基本架構的 Render 方法。例如,WML 架構的頁面配接器通常至少會呈現 <card> 的開頭與結尾標記。
文字寫入器類別
文字寫入器類別不是配接器類別,而是繼承自 System.Web.UI.HtmlTextWriter 類別的類別。文字寫入器類別的執行個體為了加以呈現而建立,並傳遞每個配接器 -- 所有的呈現都透過此物件加以執行。文字寫入器通常包含可執行例如資料編碼等工作的 Helper 方法。