现在的位置: 首页 > 综合 > 正文

ASP.NET 移动控件设备模板支持

2013年10月17日 ⁄ 综合 ⁄ 共 1799字 ⁄ 字号 评论关闭
 

ASP.NET 移动控件  

设备模板支持

设备模板支持作为 DeviceSpecific/Choice 构造的一部分提供。编写提供设备模板的 ASP.NET 移动控件非常类似于编写模板化的 ASP.NET 服务器控件。但是,请记住下面这些移动控件独有的特点:

  • 每个支持设备模板的移动控件都实现 ITemplateable 接口。这是一个标记接口,没有任何方法。
  • 支持设备模板的控件必须具有默认的呈现模式,以便在未定义或指定任何设备模板时控件仍可以呈现在设备上。
  • 控件开发人员需要决定在呈现过程中如何对待设备模板。如果定义并选择了任何设备模板,一种行为是切换到独占模板化模式。然后,控件使用所提供的模板执行所有其呈现。List 控件便是这种控件的一个示例。另外,控件可以在纯添加进程中使用模板:如果定义并选择了某个特定的模板,则可将其用于添加或替换部分默认呈现。Form 控件是展示此行为的控件的一个示例。
  • 移动控件可以访问已定义模板的集合,而不是公开 ITemplate 属性。MobileControl 基类具有两个成员有助于控件使用设备模板:
    • IsTemplated 属性指示控件是否定义并选择了任何模板,如下面的示例所示。

      [C#]

      if (mobileControl.IsTemplated)
      {
          return true;
      }
    • GetTemplate 方法返回给定名称的设备模板,如果未定义模板,则返回 null。下面的示例说明如何检索设备模板以及测试是否是 null 状态。

      [C#]

      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 控件支持特定于设备的和与设备无关的模板集。

模板 说明
HeaderTemplate 页眉模板呈现在窗体的顶部。如果窗体被分页为多个屏幕,则每个屏幕都包含页眉。页眉模板可以是与设备无关的模板集的一部分。如果模板集是与设备无关的,则页眉模板包含移动控件。
FooterTemplate 页脚模板呈现在窗体的底部。如果窗体被分页为多个屏幕,则每个屏幕都包含页脚。页脚模板可以是与设备无关的模板集的一部分。如果模板集是与设备无关的,则页脚模板包含移动控件。
ScriptTemplate 脚本模板呈现在窗体的顶部。如果窗体被分页成多个屏幕,则每个屏幕都包含脚本模板。在 HTML 设备上,脚本模板中的代码直接添加在开始 <head> 标记之后,在 WML 设备上,直接添加在开始 <card> 标记之后。

也可以通过编程的方式使用这些模板。请参见 Footer 属性、Header 属性和 Script 属性。

请参见

 

【上篇】
【下篇】

抱歉!评论已关闭.