共用方式為


裝置樣板支援

更新:2007 年 11 月

裝置樣板支援是提供做為 DeviceSpecific/Choice 建構的一部分。撰寫提供裝置樣板的 ASP.NET Mobile 控制項和撰寫樣板化 ASP.NET 伺服器控制項非常類似。然而,請務必牢記下列屬於行動控制項特有的差異性:

  • 每個支援裝置樣板的行動控制項都會實作 ITemplateable 介面。這是沒有方法的標記介面。

  • 支援裝置樣板的控制項必須具有預設的呈現模式,這樣一來,當沒有定義或指定裝置樣板時,控制項仍然可以在裝置上呈現。

  • 控制項開發人員必須決定在呈現時如何處理裝置樣板。當定義和選擇任何裝置樣板時,其中一個行為是切換成以獨佔方式樣板化的模式。接著,控制項會使用所提供之樣板執行其所有的呈現。List 控制項就是這類控制項的範例。或者,控制項可以在完全加法類處理中使用樣板;如果定義並選擇了某個樣板,它可用來加入或取代預設呈現的某個部分。Form 控制項就是表現此行為之控制項的範例。

  • 行動控制項不會公開 (Expose) ITemplate 屬性,其可以存取已定義樣板的集合。MobileControl 基底類別 (Base Class) 有兩個可以協助控制項使用裝置樣板的成員:

    • IsTemplated 屬性表示控制項是否已定義和選擇任何樣板,如下列程式碼範例所示。

      if (mobileControl.IsTemplated)
      {
          return true;
      }
      
    • GetTemplate 方法會傳回指定名稱的裝置樣板,或是在沒有定義時傳回 null。下列範例示範如何在 null 狀態下擷取和測試裝置樣板。

      public override void CreateDefaultTemplatedUI(bool doDataBind) 
          {
              ITemplate headerTemplate = GetTemplate(Constants.HeaderTemplateTag);
              ITemplate footerTemplate = GetTemplate(Constants.FooterTemplateTag);
              ITemplate scriptTemplate = GetTemplate(Constants.ScriptTemplateTag);
              if (headerTemplate != null)
              {
                  _headerContainer = new TemplateContainer();
                  headerTemplate.InstantiateIn(_headerContainer);
                  _headerContainer.EnablePagination = false;
                  Controls.AddAt(0, _headerContainer);
              }
              if (footerTemplate != null)
              {
                  _footerContainer = new TemplateContainer();
                  footerTemplate.InstantiateIn(_footerContainer);
                  _footerContainer.EnablePagination = false;
                  Controls.Add(_footerContainer);
              }
              if (scriptTemplate != null)
              {
                  _scriptContainer = new TemplateContainer();
                  scriptTemplate.InstantiateIn(_scriptContainer);
                  _scriptContainer.EnablePagination = false;
              }
          }
      

下表會說明可透過 Form 控制項使用的樣板。Form 控制項同時支援裝置特定和與裝置無關 (Device-Independent) 的樣板集合。

樣板

說明

頁首樣板

頁首樣板呈現在表單的上方。如果表單是重新編頁成數個螢幕時,每個螢幕都含有這個頁首。頁首樣板可以是與裝置無關的樣板集合的一部分。如果該樣板集合是與裝置無關,頁首樣板會包含行動控制項。

頁尾樣板

頁尾樣板呈現在表單的下方。如果表單是重新編頁成數個螢幕時,每個螢幕都含有這個頁尾。頁尾樣板可以是與裝置無關的樣板集合的一部分。如果該樣板集合是與裝置無關,頁尾樣板會包含行動控制項。

指令碼樣板

指令碼樣板呈現在表單的上方。如果表單是重新編頁成數個螢幕時,每個螢幕都含有這個指令碼樣板。對於在指令碼樣板內的程式碼,在 HTML 裝置上是直接加到 <head> 開頭標記 (Tag) 後面,在 WML 裝置上則是直接加到 <card> 開頭標記後面。

也可以利用程式設計方式使用這些樣板。如需詳細資訊,請參閱 Footer 屬性、Header 屬性和 Script 屬性。

請參閱

概念

樣板集和樣板化控制項

實作樣板化的呈現

其他資源

加入新裝置配接器和裝置支援