实现模板呈现

更新:2007 年 11 月

支持模板呈现的 ASP.NET 移动控件也支持默认的呈现。根据目标设备的不同,有关如何使用模板来综合考虑呈现方式的决策也会有所不同。ASP.NET 提供标准操作序列,允许模板呈现特定于设备。支持模板呈现的移动控件必须使用以下顺序:

  1. 控件使用 IsTemplated 属性确定是否定义和选择了设备模板。使用 OnInit 方法或 CreateChildControls 方法完成此操作。

  2. 如果定义了模板,则控件调用 CreateTemplatedUI 方法,该方法是控件从 MobileControl 基类继承的。

    说明:

    如果控件并未模板化,则不要调用 CreateTemplatedUI

  3. CreateTemplatedUI 调用控件适配器的 CreateTemplatedUI 方法。可以对设备适配器进行编码,重写此方法以实现特定于设备的模板呈现。

  4. 在控件适配器基类中定义的控件适配器的 CreateTemplatedUI 方法的默认实现又调用该控件的 CreateDefaultTemplatedUI 方法。可以对控件进行编码,重写此方法以实现一般的模板呈现。

  5. 在适配器的 Render 方法中,控件通过呈现其子级(在其中创建模板的实例),呈现模板。

移动控件还必须始终在从 TemplateContainer 派生的容器控件类型内创建新模板的实例。此规则比适用于 ASP.NET 服务器控件的规则更严格,后者只要求控件实现 INamingContainer 标记接口。下面的代码示例演示如何在移动控件中创建模板的实例。

void CreateChildTemplate(ITemplate template)
{
    TemplateContainer container = new TemplateContainer();
        template.InstantiateIn(container);
        container.DataBind();
        Controls.Add(container);
}

ItemCommand 事件

对于模板呈现,ItemCommand 事件处理程序是通过 ASP.NET 事件冒泡机制调用的。该事件处理程序会接收传递的一个参数,该参数指向源项,并指向生成该事件的控件的 CommandName 属性。这允许您以多种关联的交互方式呈现单个列表项。

在默认呈现时,控件提供简单的用户界面,允许用户单击一组项。在回发时,该控件调用 ItemCommand 处理程序,其参数指向源项。CommandName 属性返回 null。

请参见

任务

如何:创建模板化的 ASP.NET 用户控件

概念

模板集和模板化控件

其他资源

添加新的设备适配器和设备支持