共用方式為


WML 配置器集

WML 配置器 (Adapter) 集是由類別所組成,這些類別可用來在支援 WML 1.1 或 WML 1.2 版的用戶端上,呈現 ASP.NET Mobile Web Form 網頁。這份文件可能沒有包含某些方法和屬性。若要檢視原始程式碼,請參閱裝置配置器程式碼

下表列出 WML 配置器集所包含的核心類別。

配置器集 核心配置器類別命名空間
ControlAdapter 基底類別 System.Web.UI.MobileControls.Adapters.WmlControlAdapter
FormAdapter 類別 System.Web.UI.MobileControls.Adapters.WmlFormAdapter
PageAdapter 類別 System.Web.UI.MobileControls.Adapters.WmlPageAdapter
TextWriter 類別 System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter

Openwave Up.Browser 瀏覽器使用不同的頁面配置器和文字寫入器。支援這些瀏覽器的配置器集使用下表中列出的核心類別。

配置器集 核心配置器類別命名空間
ControlAdapter 基底類別 System.Web.UI.MobileControls.Adapters.WmlControlAdapter
FormAdapter 類別 System.Web.UI.MobileControls.Adapters. WmlFormAdapter
PageAdapter 類別 System.Web.UI.MobileControls.Adapters.UpWmlPageAdapter
TextWriter 類別 System.Web.UI.MobileControls.Adapters.UpWmlMobileTextWriter

選取範圍

如果 MobileCapabilities 類別的 PreferredRenderingType 屬性傳回 wml11wml12,則 WML 配置器集會被選取。

調整呈現

WML 配置器集可以根據 WML 架構式行動電話的各種功能,進行明顯的調整。因此,配置器集實際上會為每個表單及其子控制項呼叫兩次 Render 方法。第一次傳遞時,寫入器處於分析模式,並使用所有對它進行的呼叫來分析表單輸出。第二次傳遞時,才會真的呈現表單。

請避免建立會區分兩次傳遞的配置器。如果真有必要,您可以藉由檢查 WmlMobileTextWriter 類別的 AnalyzeMode 屬性,撰寫能夠存取目前模式的配置器。

預設呈現

下列步驟顯示 WML 配置器集內頁面和表單配置器類別的預設呈現。

頁面配置器會執行下列步驟:

  1. 呼叫寫入器的 BeginResponseBeginFile 方法。內容類型為 text/vnd.wap.wml
  2. 寫出開頭 <wml> 標記。
  3. 呈現作用中表單。
  4. 如果可能,將連結表單呈現為相同 WML Deck 的一部分。
  5. 寫出結尾 </wml> 標記。
  6. 呼叫 EndFileEndResponse 方法。

表單配置器會執行下列步驟:

  1. 將寫入器設為分析模式。
  2. 呼叫寫入器的 BeginForm 方法。
  3. 呈現表單內容。其結果不會傳送至裝置,而會由寫入器進行分析。
  4. 呼叫寫入器的 EndForm 方法。
  5. 將寫入器設為連線模式。
  6. 呼叫寫入器的 BeginForm 方法。
  7. 呈現表單內容。
  8. 呼叫寫入器的 EndForm 方法。

使用樣式

WmlMobileTextWriter 類別提供數種 helper 方法,可協助您使用樣式資訊來呈現內容:

  • EnterLayoutExitLayout 方法允許配置器藉由使用指定樣式的段落格式,發出區塊的開頭和結尾標記。
  • EnterFormatExitFormat 方法允許配置器藉由使用指定樣式的字元格式,發出區塊的開頭和結尾標記。
  • ResetFormattingState 方法允許配置器將格式狀態重設為預設狀態。

調整呈現方法

WmlMobileTextWriter 類別提供數種高階的呈現方法,如下表所示。

WML 配置器必須使用這些方法來呈現內容,因為寫入器可以根據目標裝置的功能,自動以最佳方式調整輸出。

如需每個方法的詳細資訊,請參閱 WmlMobileTextWriter 類別的參考文件。

寫入器方法 說明
RenderText 呈現文字項目。
RenderImage 呈現影像項目。
RenderTextBox 呈現文字輸入方塊項目。
RenderBeginHyperlink

RenderEndHyperlink

呈現超連結 (Hyperlink) 項目。呼叫 RenderTextRenderImage 方法,呈現超連結內的文字或影像。
RenderBeginPostBack

RenderEndPostBack

呈現回傳項目。呼叫 RenderTextRenderImage 方法,呈現回傳內的文字或影像。
RenderBeginSelect

RenderEndSelect

RenderSelectOption

呈現選擇清單項目。呼叫 RenderSelectOption 方法,呈現選擇清單中的每個選項。
AddFormVariable 加入要與表單一起呈現的變數和初始值。當 WML 裝置呈現表單時,會將變數初始化為指定的初始值。

此外,WmlControlAdapter 基底類別 (Base Class) 還提供數種較高階的方法,如下表所示。其中每個方法都使用之前提到用於呈現的寫入器方法。

配置器方法 說明
RenderBeginLink

RenderEndLink

呈現連結。配置器會自動判斷如何呈現連結,將相同頁面上的表單連結呈現為回傳,並將其他連結呈現為超連結。

呼叫寫入器的 RenderText 或 RenderImage 方法,以呈現連結內的文字或影像。

RenderLink 呈現具有內部文字的連結。
RenderPostBackEvent 呈現以控制項當作目標的回傳事件。

在使用者介面 (UI) 中呈現功能表

在某些 WML 架構的裝置上,由多個連結或錨點 (Anchor) 所組成的表單可以透過 Select/Option 建構 (<select><option> 標記),用自動產生的鍵台巡覽使用者介面 (UI) 呈現為項目功能表,以取得更好的效果。Openwave Up.Browser 瀏覽器就是此類裝置的範例。

如果表單是由零個或多個可呈現為靜態文字的控制項所組成,而這些控制項之後又有一或多個可以用 Select/Option 建構呈現的控制項,則 WML 表單配置器可以將該表單呈現為功能表。

如果 MobileCapabilities 類別的 RendersWmlSelectsAsMenuCards 屬性設定為 true,則裝置可以將 <select> 標記建構呈現為功能表 Card,而非下拉式方塊。

如果瀏覽器可以將包含多個表單的 Deck 當作個別的 Card 來處理,CanCombineFormsInDeck 會設為 true。配置器可以將相同頁面的多個表單,輸出為單一 Deck 的 Card。

呈現表單接受

當呈現的表單包含將表單結果送回伺服器的 UI 時,某些 WML 架構的裝置要求指定裝置的 UI 必須在表單開頭使用 <do> 物件的形式。Openwave Up.Browser 瀏覽器就是此類裝置的範例。

當裝置要求 UI 使用 <do> 物件時,表單配置器會檢查表單上是否有任何控制項需要送出 UI,以及是否有任何控制項確實提供此類 UI。為了進行這些判斷,表單配置器會查詢表單上每個控制項的配置器。

呈現螢幕鍵盤

某些控制項所呈現的 UI,可以在 WML 架構的裝置上對應至螢幕鍵盤。如果裝置將 WML <do> 建構呈現為內嵌 (Inline) 按鈕,而非螢幕鍵盤,則 MobileCapabilities 類別RendersWmlDoAcceptsInline 屬性是設定為 true

輔助 UI

WML 配置器集支援一種稱為輔助 UI 的概念。輔助 UI 是由必須顯示使用者介面之額外畫面的控制項所使用,這種顯示方式,就像在 Windows 架構的應用程式中顯示對話方塊。若要使用輔助 UI,控制項配置器會執行下列步驟:

  1. 回應使用者互動時 (通常是在可覆寫的 HandlePostBackEvent 方法中),控制器配置器會藉由設定 WmlControlAdapter 基底類別的 SecondaryUIMode 屬性,將輔助 UI 模式設為一個內部已知的常數。
  2. 在進行呈現時,控制項會檢查它是否處於輔助 UI 模式,並使用該模式來呈現適當的輔助 UI。
  3. 在回應來自輔助 UI 的使用者互動時,控制項配置器可能會將輔助 UI 模式變更為其他值,或也可能藉由呼叫 WmlControlAdapter 基底類別的 ExitSecondaryMode 方法,結束輔助 UI 模式。

額外功能

WML 裝置還公開 (Expose) 了可用來變更呈現的額外功能。您可透過 MobileCapabilities 類別的 HasCapability 方法來存取這些功能。

請參閱

如需詳細資訊,請參閱裝置能力表