演练:自定义移动主页

上次修改时间: 2011年2月2日

适用范围: SharePoint Foundation 2010

本演练演示如何通过实现自定义 RenderingTemplate 控件来自定义移动主页。此示例演示如何自定义主页的标题部分。有关自定义移动主页的任何部分的步骤的概述,请参阅如何:自定义移动主页

在自定义之前

在用作工作组网站 (STS) 移动主页的 mblwiki.aspx 文件的两个 HeaderTemplate 元素中声明 SPMobileComponent 对象,将其 TemplateName 属性明确设置为 WebPartMobileSummaryViewTitle。下面将显示这些元素中的其中一个元素:

<HeaderTemplate>
  <SPMobile:SPMobileControlContainer RunAt="Server" Weightless="true">
    <SPMobile:SPMobileComponent RunAt="Server" 
       TemplateName="WebPartMobileSummaryViewTitle" />
    <SPMobile:SPMobileComponent RunAt="Server" 
       TemplateName="MobileDefaultSeparator" />
  </SPMobile:SPMobileControlContainer>
</HeaderTemplate>

此对象在其 ID 为"WebPartMobileSummaryViewTitle"的 MobileDefaultTemplates.ascx 中调用 RenderingTemplateRenderingTemplate 显示如下:

<SharePoint:RenderingTemplate RunAt="Server" 
  id="WebPartMobileSummaryViewTitle">
  <Template>
    <SPMobile:SPMobileWebTitle RunAt="Server" Prefix="WebPartMobile" />
  </Template>
</SharePoint:RenderingTemplate>

如本示例所示,呈现模板将调用 SPMobileWebTitle 类的模板选择器对象。此模板选择器对象将构造以下呈现模板 ID,并调用具有此 ID 的呈现模板:WebPageMobile_STS_HomePage_Title。如果没有具有此 ID 的呈现模板,则它会使用一个名为 WebPageMobile_Default_HomePage_Title 的模板。

Microsoft SharePoint Foundation 不包含具有 ID Mobile_STS_HomePage_Title 的 RenderingTemplate。在本演练中,您将创建一个在双色面板中呈现主页标题的模板。在自定义之前,WebPageMobile_Default_HomePage_Title 会以屏幕快照中显示的形式呈现 STS 主页的标题。标题文本来自相应的非移动 STS 主页的标题。该文本以白色文字呈现在深蓝色面板中。

工作组网站主页标题区域的默认呈现

非自定义的移动主页

过程

自定义 STS 移动主页的标题部分

  1. 在 Microsoft Visual Studio 中,创建一个"空白 SharePoint 项目"。将其设置为服务器场解决方案,而不是沙盒解决方案。

  2. 向 TEMPLATE\ControlTemplates 中添加一个"SharePoint 映射文件夹"。

  3. 右键单击新文件夹,并添加一个 SharePoint"用户控件"。为该 .ascx 文件命名,使其与其他解决方案提供程序的名称区分开。例如 ContosoMobileRenderingTemplates.ascx。Visual Studio 会自动将该文件添加到 SharePoint 解决方案清单中,并将其设置为部署到 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates。

    提示提示

    不要通过右键单击"解决方案资源管理器"中的项目 来添加该"用户控件"。当通过这种方式添加"用户控件"时,Visual Studio 会将其放在 TEMPLATE\ControlTemplates 的子文件夹中;如果该控件未移动,则 Visual Studio 会将其部署到 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates 的相应子文件夹中。不会加载子文件夹中的移动呈现模板。

  4. 删除 .ascx.cs 和 .ascx.designer.cs(或 .ascx.vb 和 .ascx.designer.vb)文件。此项目不需要它们。

  5. 将 .ascx 文件的整个指令部分替换为以下标记。

    <%@ Register TagPrefix="GroupBoardMobile"   Namespace="Microsoft.SharePoint.Applications.GroupBoard.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#"   %> 
    <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> 
    <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="WPMobile" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
  6. 在这些指令下,添加以下标记。这样可创建一个具有 ID 的 RenderingTemplate,页面分析程序在呈现 STS 主页的标头区域时将查找此 ID。

    <SharePoint:RenderingTemplate 
      ID="WebPartMobile_STS_HomePage_Title" RunAt="Server">
    
    
    </SharePoint:RenderingTemplate>
    
  7. RenderingTemplate 元素中,定义一个具有 SPMobilePaddedPanel 子控件的 Template 元素。设置标签的 ForeColor 属性、BackColor 属性、Font-Size 属性和 Font-Bold 属性,如以下示例所示。

    <Template>
        <SPMobile:SPMobilePaddedPanel RunAt="Server" 
          ForeColor="#FFFFFF" 
          BackColor="#990033" 
          Font-Bold="True" 
          Font-Size="13pt">
          <WPMobile:WebPartMobilePageTitle RunAt="Server" />
        </SPMobile:SPMobilePaddedPanel>
    </Template>
    
  8. 在"生成"菜单上,选择"部署解决方案"。这将自动保存 .ascx 文件,将其部署到 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates,并回收 Web 应用程序,以便重新加载该文件夹中的所有 .ascx 文件。

  9. 在部署中通过您的设备或仿真程序导航到任何 STS 网站的主页。标题应显示在深蓝色面板内的内部红色面板中。(外部面板直接在 mblwiki.aspx 页上进行声明,因此无法通过自定义删除它。如果要删除它,则必须为 STS 网站创建一个新主页,并使用主页重定向功能将移动设备重定向到新页面。有关主页重定向的详细信息,请参阅主页重定向如何:通过重定向自定义移动主页。)

主页中的自定义标头部分

请参阅

任务

如何:自定义移动主页

概念

移动页的布局和分页

移动页呈现系统