| ASP.NET 移动控件 |
支持模板呈现的 ASP.NET 移动控件也支持默认的呈现。根据目标设备的不同,有关如何使用模板来综合考虑呈现方式的决策也会有所不同。ASP.NET 提供标准操作序列,允许模板呈现特定于设备。支持模板呈现的移动控件必须使用以下顺序:
- 控件使用 IsTemplated 属性确定是否定义和选择了设备模板。使用 OnInit 或 CreateChildControls 方法进行这一操作。
- 如果定义了模板,则控件调用 CreateTemplatedUI 方法,该方法是控件从 MobileControl 基类继承的。
注意 如果控件并非模板化控件,则不调用 CreateTemplatedUI。
- CreateTemplatedUI 调用控件适配器的 CreateTemplatedUI 方法。可以对设备适配器进行编码,重写此方法以实现特定于设备的模板呈现。
- 在控件适配器基类中定义的控件适配器的 CreateTemplatedUI 方法的默认实现又调用该控件的 CreateDefaultTemplatedUI 方法。可以对控件进行编码,重写此方法以实现一般的模板呈现。
- 在适配器的 Render 方法中,控件通过呈现其子级(在其中创建模板的实例),呈现模板。
移动控件还必须始终在从 System.Web.UI.MobileControls.TemplateContainer 导出的容器控件类型内创建新模板的实例。此规则比适用于 ASP.NET 服务器控件的规则更严格,后者只要求控件实现 INamingContainer 标记接口。以下示例显示如何在移动控件中创建模板的实例。
[C#]
void CreateChildTemplate(ITemplate template)
{
TemplateContainer container = new TemplateContainer();
template.InstantiateIn(container);
container.DataBind();
Controls.Add(container);
}
ItemCommand 事件
对于模板呈现,通过 ASP.NET 的事件冒泡机制调用 ItemCommand 事件处理程序。向该事件处理程序传递一个参数,该参数指向源项以及指向生成该事件的控件的 CommandName 属性。这允许您以多种关联的交互方式呈现单个列表项。
在默认呈现时,控件提供简单的用户界面,允许用户单击一组项。在回发时,该控件调用 ItemCommand 处理程序,其参数指向源项。CommandName 属性返回 null 引用(在 Visual Basic 中为 Nothing)。
本文介绍ASP.NET移动控件如何支持模板呈现,并详细说明了模板呈现的流程,包括控件如何选择模板、创建模板化的用户界面及渲染过程。此外,还提到了移动控件在模板呈现时对容器控件的要求及事件处理。
1044

被折叠的 条评论
为什么被折叠?



