要查看英语原文,请勾选“英语”复选框。也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

实现模板呈现

Visual Studio 2010

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

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

显示: