SPMobileWebContents Class

Specifies the ID of the <RenderingTemplate> that is used when rendering the main contents area of a mobile home page.

Inheritance Hierarchy

System.Object
  System.Web.UI.Control
    System.Web.UI.MobileControls.MobileControl
      Microsoft.SharePoint.MobileControls.SPMobileComponent
        Microsoft.SharePoint.MobileControls.SPMobileTemplateSelector
          Microsoft.SharePoint.MobileControls.SPMobileWebTemplateSelector
            Microsoft.SharePoint.MobileControls.SPMobileWebContents

Namespace:  Microsoft.SharePoint.MobileControls
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public NotInheritable Class SPMobileWebContents _
    Inherits SPMobileWebTemplateSelector

Dim instance As SPMobileWebContents
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public sealed class SPMobileWebContents : SPMobileWebTemplateSelector

Remarks

For an overview of the role of this class in the page rendering system for mobile devices, see Mobile Page Rendering System.

Do not call SPMobileWebContents in your code. It is documented to provide further understanding of how mobile Web pages are rendered and how the rendering can be customized.

For information on the rendering of the main contents area of pages other than the home page, see SPMobileListContents.

The <RenderingTemplate> ID takes the following form.

Mobile_WebSiteType_PageType_Contents

The "Mobile" is a prefix that indicates that the <RenderingTemplate> is for SharePoint mobile web sites.

The WebSiteType portion of the ID is determined by the SPContext when the SPMobileWebContents object is instantiated.

The PageType is the type of page, such as HomePage or NewForm. For all practical purposes, in Windows SharePoint Services 3.0, this part of the ID is always HomePage.

The "Contents" indicates that <RenderingTemplate> applies to the main contents part of the page.

For built-in Web site types that ship with Windows SharePoint Services 3.0, WebSiteType is the value of the Name attribute of the caml <Template Element (Site)> element (of the SharePoint WEBTEMP.XML file). For example, the Name value for the blog site definition is "BLOG". Hence, the SPMobileWebContents object defines the following <RenderingTemplate> ID for a mobile blog home page.

Mobile_BLOG_HomePage_Contents

For custom site definitions, the WebSiteType portion of the <RenderingTemplate>'s ID is the value of the ID attribute of the <Template Element (Site)> element (in a custom WEBTEMP*.XML file), not the Name attribute. Suppose you have a WEBTEMPMyCustomSiteDefinitions.XML file containing the following <Template Element (Site)> element.

<Template Name="MyFirstCustomSiteDefinition" ID="10001"> 

The SPMobileWebContents object defines the following <RenderingTemplate> ID for the mobile home page.

Mobile_10001_HomePage_Contents

The following excerpt from the MobileDefaultTemplates.ascx file (in C:\\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES) shows the markup that controls the rendering of main contents. Notice that there are specific templates only for the STS, CENTRALADMIN, and MPS Web site types. All other Web site types use the Mobile_Default_HomePage_Contents <RenderingTemplate>. So, unless you do some customization (see below), in the context of a BLOG site the SPMobileWebContents object defines a template named Mobile_BLOG_HomePage_Contents. Because there is no <RenderingTemplate> with that name, the Mobile_Default_HomePage_Contents <RenderingTemplate> is used.

<SharePoint:RenderingTemplate RunAt="Server" ID="MobileHomePageContents">
  <Template>
    <SPMobile:SPMobileWebContents RunAt="Server" />
  </Template>
</SharePoint:RenderingTemplate>
<SharePoint:RenderingTemplate RunAt="Server" 
  ID="Mobile_Default_HomePage_Contents">
  <Template>
    <SPMobile:SPMobileComponent RunAt="Server" 
      TemplateName="Mobile_STS_HomePage_Contents" />
  </Template>
</SharePoint:RenderingTemplate>
<SharePoint:RenderingTemplate RunAt="Server" 
  ID="Mobile_STS_HomePage_Contents">
  <Template>
    <mobile:Label RunAt="Server" 
      Text="<%$Resources:wss, mobile_listcategory_geneliclists_text%>" 
      BreakAfter="true" />
    <SPMobile:SPMobileListIterator RunAt="Server">
      <SPMobile:SPMobileList RunAt="Server" 
        TemplateType="Announcements" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="Categories" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="Comments" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="Contacts" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="Events" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="IssueTracking" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="Links" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="GanttTasks" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="GenericList" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="Posts" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="Tasks" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="Survey" />
    </SPMobile:SPMobileListIterator>
    <mobile:Label RunAt="Server" 
      Text="<%$Resources:wss, mobile_listcategory_documents_text%>" 
      BreakAfter="true" />
    <SPMobile:SPMobileListIterator RunAt="Server">
      <SPMobile:SPMobileList RunAt="Server" 
        TemplateType="DocumentLibrary" />
      <SPMobile:SPMobileList RunAt="Server" 
        TemplateType="WebPageLibrary" />
      <SPMobile:SPMobileList RunAt="Server" TemplateType="XMLForm" />
    </SPMobile:SPMobileListIterator>
    <mobile:Label RunAt="Server" Text="<%$Resources:wss, 
      mobile_listcategory_pictures_text%>" BreakAfter="true" />
    <SPMobile:SPMobileListIterator RunAt="Server">
      <SPMobile:SPMobileList RunAt="Server" 
        TemplateType="PictureLibrary" />
    </SPMobile:SPMobileListIterator>
  </Template>
</SharePoint:RenderingTemplate>
<SharePoint:RenderingTemplate RunAt="Server" 
  ID="Mobile_CENTRALADMIN_HomePage_Contents">
  <Template>
    <mobile:Label RunAt="Server" 
      Text="<%$Resources:wss, mobile_sitetemplate_nosupport_text%>" 
      BreakAfter="true" />
  </Template>
</SharePoint:RenderingTemplate>
<SharePoint:RenderingTemplate RunAt="Server" 
  ID="Mobile_MPS_HomePage_Contents">
  <Template>
    <mobile:Label RunAt="Server" 
      Text="<%$Resources:wss, mobile_sitetemplate_nosupport_text%>" 
      BreakAfter="true" />
  </Template>
</SharePoint:RenderingTemplate> 

Do not change MobileDefaultTemplates.ascx. For any Web site type, such as BLOG, that does not already have a <RenderingTemplate> defined in MobileDefaultTemplates.ascx, you can override the Mobile_Default_HomePage_Contents <RenderingTemplate> with the following method.

Create a custom *.aspx file in the ...\CONTROLTEMPLATES folder that contains a <RenderingTemplate> with the name Mobile_WebSiteType_HomePage_Contents. Specify the name of a <Template Element (Site)>, such as BLOG, (or the ID of a <Template Element (Site)> for a custom site definition) in place of WebSiteType. Your custom <RenderingTemplate> then calls a combination of controls different from those used by Mobile_Default_HomePage_Contents to render the footer. (Otherwise the customization would be pointless.)

The runtime automatically gives preference to your custom <RenderingTemplate> over the Mobile_Default_HomePage_Contents <RenderingTemplate> in MobileDefaultTemplates.ascx.

For more about customizing Web page main contents, see Walkthrough: Customizing a Mobile Home Page.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

SPMobileWebContents Members

Microsoft.SharePoint.MobileControls Namespace

Other Resources

Mobile Page Rendering System

WebTemp.xml

Walkthrough: Customizing a Mobile Home Page