Freigeben über


Vorgehensweise: Anpassen des Renderns von Feldern auf mobilen Seiten

Letzte Änderung: Mittwoch, 2. Februar 2011

Gilt für: SharePoint Foundation 2010

Dieses Thema bietet einen Überblick über die grundlegende Vorgehensweise zum Anpassen des Renderns von Feldern auf Microsoft SharePoint Foundation-Seiten, auf die mobile Geräte zugreifen können. Entsprechende exemplarische Vorgehensweisen finden Sie unter Exemplarische Vorgehensweise: Anpassen von Elementtiteln in mobilen Formularen und Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Feldrendering-Steuerelements für mobile Seiten.

Das Rendern eines Felds auf einer Listenansichtsseite oder einem Formular beginnt mit einem SPMobilePageContents-Objekt im Text- bzw. Inhaltsbereich der Seite. Wie unter System zum Rendern mobiler Seiten beschrieben, leitet dieses Objekt eine Folge von Aufrufen ein, die letztlich in einem Aufruf eines RenderingTemplate-Objekts resultieren, das den entsprechenden Bereich der mobilen Seite rendert. Dies ist nahezu immer ein RenderingTemplate-Element mit einer segmentierten ID. Wird kein RenderingTemplate-Element mit einem übereinstimmenden Namen gefunden, wird eine Standardvorlage verwendet. Dies bedeutet, dass Sie das Rendern eines Felds anpassen können, indem Sie ein RenderingTemplate-Element mit der ID erstellen, nach der die Laufzeit suchen wird.

Die Laufzeit sucht insbesondere nach einem RenderingTemplate-Element mit einer ID mit dem Format MobileCustomListField_Listentyp-ID_Feldtyp_Feld.

Die Platzhalter Listentyp-ID, Feldtyp und Feld werden unter Segmentierte Rendervorlagen-IDs definiert.

Wenn kein RenderingTemplate-Element mit einer gesuchten ID vorhanden ist, wird das RenderingTemplate-Element mit der ID MobileDefaultListField verwendet.

Vorhandene "RenderingTemplate"-Elemente

Die folgende Liste enthält RenderingTemplate-Elemente für das Rendern von Feldern, die bereits in MobileDefaultTemplates.ascx oder GwbMobileDefaultTemplates.ascx vorhanden sind, wenn SharePoint Foundation installiert wird.

  • MobileCustomListField_Contacts_Text_WorkZip

  • MobileCustomListField_PictureLibrary_Computed_ImageSize

  • MobileCustomListField_Posts_DateTime_PublishedDate

  • MobileCustomListField_Events_UserMulti_ParticipantsPicker

  • MobileCustomListField_CallTrack_DateTime_CallTime

  • MobileCustomListField_CallTrack_Computed_RefDetail

  • MobileCustomListField_Whereabouts_User_Name

Sie können die Dateien MobileDefaultTemplates.ascx und GwbMobileDefaultTemplates.ascx nicht ändern. Sie können neue RenderingTemplate-Elemente mit denselben Namen (in Ihrer eigenen ASCX-Datei) erstellen, doch es besteht das Risiko, dass andere in der SharePoint Foundation-Bereitstellung installierte Lösungen nicht mehr funktionieren, wenn Sie die ursprünglichen RenderingTemplate-Elemente mit diesen Namen ändern.

HinweisHinweis

Die RenderingTemplate-Vorlagen im Funktionsumfang von SharePoint Foundation werden geladen, bevor benutzerdefinierte Rendervorlagen geladen werden. Wenn demnach eine benutzerdefinierte Rendervorlage, die denselben Namen wie eine der vorhandenen Rendervorlagen hat, geladen wird, wird die ursprüngliche Vorlage überschrieben. Wenn mehr als ein benutzerdefiniertes RenderingTemplate-Element denselben Namen hat, überschreibt dasjenige, dessen Dateiname alphabetisch der letzte ist, alle anderen Elemente. Wenn eine bestimmte Datei zwei oder mehr solcher Vorlagen mit demselben Namen hat, wird keine davon geladen.

Darüber hinaus gibt es bereits ein RenderingTemplate-Standardelement mit der ID MobileDefaultListField, das von der Laufzeit verwendet wird, wenn kein RenderingTemplate-Element für die aktuelle Liste und das aktuelle Feld definiert ist. Dasselbe Risiko besteht, wenn Sie ein neues RenderingTemplate-Element mit diesem Namen erstellen.

So passen Sie einen Abschnitt einer mobilen Listenansicht oder Formularseite an

  1. Erstellen Sie in Microsoft Visual Studio ein leeres SharePoint-Projekt. Erstellen Sie eine Farmlösung, keine Lösung mit eingeschränkter Sicherheitsstufe.

  2. Fügen Sie TEMPLATE\ControlTemplates einen zugeordneten SharePoint-Ordner hinzu.

  3. Klicken Sie mit der rechten Maustaste auf den neuen Ordner, und fügen Sie ein SharePoint-Steuerelement hinzu. Legen Sie für die ASCX-Datei einen Namen fest, der sich von den Dateien anderer Lösungsanbieter unterscheidet. Beispiel: ContosoMobileRenderingTemplates.ascx. Die Datei wird von Visual Studio automatisch dem SharePoint-Lösungsmanifest hinzugefügt, und es wird festgelegt, dass die Datei in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates bereitgestellt wird.

    TippTipp

    Fügen Sie das Benutzersteuerelement nicht durch Klicken mit der rechtem Maustaste auf das Projekt im Projektmappen-Explorer hinzu. Wenn ein Benutzersteuerelement auf diese Weise hinzugefügt wird, wird es von Visual Studio in einem Unterordner von TEMPLATE\ControlTemplates abgelegt. Falls es nicht verschoben wird, wird es von Visual Studio in einem entsprechenden Unterordner von %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates bereitgestellt. Mobile Rendervorlagen in Unterordern werden nicht geladen.

  4. Löschen Sie die Dateien .ascx.cs und .ascx.designer.cs (oder .ascx.vb und .ascx.designer.vb), die für dieses Projekt nicht benötigt werden.

  5. Ersetzen Sie den gesamten Direktivenabschnitt der ASCX-Datei durch das folgende Markup.

    <%@ 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. Fügen Sie der ASCX-Datei eine Rendervorlage hinzu, und weisen Sie ihr eine ID im folgenden Format zu: MobileCustomListField_Listentyp-ID_Feldtyp_Feld.

    • Listentyp-ID ist entweder die ID eines Typs der aktuellen Liste (z. B. 105) oder einer der Werte der SPListTemplateType-Enumeration (z. B. Contacts).

    • Feldtyp ist der Datentyp des Felds, und Feld ist der interne Name des Felds. Weitere Informationen dazu, wie diese Platzhalter ersetzt werden können, finden Sie unter System zum Rendern mobiler Seiten.

    Ihre Rendervorlage kann renderfähige Steuerelemente wie Label-Steuerelemente direkt deklarieren, oder sie kann ein Rendersteuerelement einer Klasse deklarieren, die von SPMobileBaseFieldControl abgeleitet ist.

  7. Wählen Sie im Menü Erstellen die Option Lösung bereitstellen aus. Dadurch wird die ASCX-Datei automatisch gespeichert und in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates bereitgestellt. Die Webanwendung wird wiederverwendet, sodass alle ASCX-Dateien in diesem Ordner erneut geladen werden.

Beispiel

Das folgende Beispiel einer RenderingTemplate-Definition veranschaulicht das Erstellen eines neuen Titelfelds für Elemente in Listen vom Typ Ankündigungen. Detaillierte Beispiele finden Sie unter Exemplarische Vorgehensweise: Anpassen von Elementtiteln in mobilen Formularen und Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Feldrendering-Steuerelements für mobile Seiten.

<SharePoint:RenderingTemplate RunAt="Server" ID="MobileCustomListField_Announcements_Text_Title" >
  <Template>
    <mobile:Label Text="Title field in Announcements List" RunAt="Server" />
  </Template>
</SharePoint:RenderingTemplate>

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Anpassen von Elementtiteln in mobilen Formularen

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Feldrendering-Steuerelements für mobile Seiten

Konzepte

Vorgehensweise: Erstellen einer benutzerdefinierten Feldtypdefinition

Grundlegendes zu "Schema.XML"-Dateien

Grundlegendes zu Onet.xml-Dateien