演练:自定义移动列表视图页

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

适用范围: SharePoint Foundation 2010

本演练演示如何通过实现自定义 RenderingTemplate 控件来自定义移动列表视图页。此示例演示如何自定义该页的正文(内容)部分。有关如何自定义移动表单或列表视图页的任意部分的概述,请参阅如何:自定义移动列表视图和表单页

移动页呈现系统中所述,列表视图页的正文部分通过一系列调用来呈现,这一系列调用中的最后一次调用是调用名为 Mobile_ListTypeID_View_Contents 的 RenderingTemplate 对象,其中 ListTypeID 是列表定义的 ID 号或一个 SPListTemplateType 值。如果不存在具有此 ID 的 RenderingTemplate 对象,则使用具有 ID Mobile_Default_View_Contents 的 RenderingTemplate 对象。

在 Microsoft SharePoint Foundation 中,没有 ID 为 Mobile_Announcements_View_Contents(或 Mobile_104_View_Contents,它引用相同的列表类型)的 RenderingTemplate 类对象。在本演练中,您将创建一个用于在通知列表上方添加问候语的该类对象。

过程

自定义移动通知视图页的内容部分

  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. 在这些指令的下方,添加一个 RenderingTemplate 对象,并为此对象分配一个视图页上的 SPMobileListContents 对象正在查找的 ID:Mobile_104_View_Contents。

    <SharePoint:RenderingTemplate ID="Mobile_104_View_Contents" RunAt="Server" >
    
    </SharePoint:RenderingTemplate>
    
  7. RenderingTemplate 元素中,定义一个具有 Label 子控件的 Template 元素。按以下代码所示设置标签的 Text 属性。

    <Template>
        <SPMobile:SPMobileControlContainer RunAt="Server">
          <SPMobile:SPMobileComponent RunAt="Server" 
             TemplateName="MobileViewPicker" />
          <SPMobile:SPMobileComponent RunAt="Server" 
             TemplateName="MobileDefaultSeparator" />
        </SPMobile:SPMobileControlContainer>
        <mobile:Label RunAt="Server" 
          Text="Hello SharePoint Mobile User!"/>
        <SPMobile:SPMobileListItemIterator RunAt="Server" 
           ListItemSeparatorTemplateName="MobileListItemSeparator" />
    </Template>
    
  8. 在"生成"菜单上选择"部署解决方案"。这将自动保存 .ascx 文件,将其部署到 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates,并回收 Web 应用程序,以便重新加载该文件夹中的所有 .ascx 文件。

  9. 使用您的设备或仿真程序导航到"通知"列表。您应会看到列表上方的问候语,如以下屏幕截图中所示:

移动列表视图中的自定义正文部分

请参阅

任务

如何:自定义移动列表视图和表单页

概念

移动页的布局和分页

移动页呈现系统

其他资源

有关移动开发的操作方法和演练