上次修改时间: 2010年3月19日
适用范围: SharePoint Foundation 2010
本主题介绍开发 Microsoft ASP.NET 3.5 中的移动控件适配器与开发 Microsoft SharePoint Foundation 中的移动 Web 部件适配器之间的区别。
SharePoint Foundation 移动适配框架编程
SharePoint Foundation 的移动适配器框架相对于 Microsoft ASP.NET 3.5 的移动适配系统开发起来确实更加简单一些。在 SharePoint Foundation 中,与使用 Microsoft ASP.NET 3.5 系统一样,您可以为每个需要可由移动设备访问的 Web 部件创建一个移动适配器控件。您可将该适配器映射到适合在 compat.browser 文件中呈现的 Web 部件。
但是,使用 SharePoint Foundation 框架进行开发与使用 Microsoft ASP.NET 3.5 进行移动适配器开发有一些方面的不同。在很大程度上来说,为了符合 SharePoint Foundation 安全模型,这些不同是必需的:
SharePoint Foundation 中的移动适配器框架仅用来改编 Web 部件,而不可用于其他类型的控件。如果您需要在移动网页上使用其他类型的控件,则应使用命名空间 Microsoft.SharePoint.MobileControls 中的控件,而不是改编 Microsoft.SharePoint.WebControls 中的控件。
您的适配器类派生自 Microsoft.SharePoint.WebPartPages.WebPartMobileAdapter 类,而不是直接派生自 System.Web.UI.Adapters.ControlAdapter 类。
您的适配器类必须注册为安全控件。有关如何执行此操作的详细信息,请参见使用 Web.config 文件。
不要重写继承自 ControlAdapter 类的 Render(HtmlTextWriter) 方法,而应重写以下两个方法中的一个或两个:CreateControlsForSummaryView() 和 CreateControlsForDetailView()。
不要重写 WebPartMobileAdapter 从 ControlAdapter 继承的 OnLoad(EventArgs)、OnInit(EventArgs)、OnPreRender(EventArgs) 和 OnUnload(EventArgs) 方法。然而,如果您需要针对任何这些事件的其他逻辑,则可重写 WebPartMobileAdapter 的一个或多个特定的 SharePoint 安全替换方法:OnLoadForMobile(EventArgs)、OnInitForMobile(EventArgs)、OnPreRenderForMobile(EventArgs) 和 OnUnloadForMobile(EventArgs)。
重要信息
有关如何重写这些方法的重要说明,请参见这四个方法的参考主题。
移动设备可访问的 Web 部件页是类 WebPartMobilePage 的对象,但您不要直接创建它们。当移动设备用户导航到包含已针对移动设备改编的 Web 部件的 Web 部件页时,运行时将会创建一个 WebPartMobilePage 对象并将其返回到移动设备。
每个包含已针对移动设备改编的 Web 部件的 Web 部件页都具有对应的应用程序页,用户可在其中设置已改编的 Web 部件的可见性和顺序。这些页是隐藏类型的对象,因此您无法以编程方式影响这些属性。