Freigeben über


Erstellen benutzerdefinierter Inhaltstypen in SharePoint 2010

SharePoint-Schnellstartbanner

Erste Schritte mit der Webentwicklung in SharePoint 2010: Informationen zum Erstellen eines benutzerdefinierten Inhaltstyps in SharePoint 2010.

Letzte Änderung: Mittwoch, 12. Januar 2011

Gilt für: SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2010

Inhalt dieses Artikels
Erstellen eines SharePoint 2010-Projekts
Erstellen eines Inhaltstyps
Überprüfen der ordnungsgemäßen Funktion des Projekts
Nächste Schritte

In dieser Übung erstellen Sie einen benutzerdefinierten Inhaltstyp. Anschließend fügen Sie dem Inhaltstyp zwei Felder hinzu, nämlich ein neues Textfeld und ein bereits in der Website vorhandenes Feld. Für diese Aufgabe müssen Sie die folgenden Schritte ausführen:

  • Erstellen eines SharePoint 2010-Projekts

  • Erstellen eines Inhaltstyps

  • Überprüfen der ordnungsgemäßen Funktion des Projekts

Erstellen eines SharePoint 2010-Projekts

Für diese Aufgabe erstellen Sie ein leeres SharePoint 2010-Projekt in Microsoft Visual Studio 2010.

So erstellen Sie das SharePoint-Projekt

  1. Klicken Sie zum Starten von Visual Studio 2010 im Startmenü auf Alle Programme, klicken Sie auf Microsoft Visual Studio 2010, und klicken Sie dann auf Microsoft Visual Studio 2010.

  2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  3. Klicken Sie im Dialogfeld Neues Projekt im Abschnitt Installierte Vorlagen auf Visual C#, klicken Sie auf SharePoint, und klicken Sie dann auf 2010.

  4. Wählen Sie in den Projektelementen die Option Leeres SharePoint-Projekt aus.

  5. Geben Sie im Feld Name die Bezeichnung CreateContentType ein, und klicken Sie dann auf OK.

  6. Geben Sie im Assistenten zum Anpassen von SharePoint die lokale Website ein, die Sie für diese Übung verwenden möchten (z. B. https://localhost/SampleWebSite).

  7. Wählen Sie Als Farmlösung bereitstellen für die Vertrauensebene aus, und klicken Sie dann auf Fertig stellen.

Erstellen eines Inhaltstyps

In dieser Übung erstellen Sie den Inhaltstyp als Funktion und fügen einen Ereignisempfänger hinzu.

So erstellen Sie einen Inhaltstyp

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Features, und klicken Sie dann auf Funktion hinzufügen.

  2. Klicken Sie mit der rechten Maustaste auf Feature1, und klicken Sie dann auf Ereignisempfänger hinzufügen. Ein Funktionsereignisempfänger wird von Visual Studio zu Feature1 hinzugefügt.

  3. Klicken Sie mit der rechten Maustaste auf Feature1.EventReceiver.cs, und klicken Sie dann auf Code anzeigen.

  4. Kommentieren Sie die FeatureActivated-Methode in der Feature1EventReceiver-Klasse aus.

  5. Fügen Sie in der FeatureActivated-Methode den folgenden Code ein.

    using (SPWeb spWeb = properties.Feature.Parent as SPWeb)
    {
        SPContentType newAnnouncement = spWeb
            .ContentTypes
            .Cast<SPContentType>()
            .FirstOrDefault(c => c.Name == "New Announcements");
        if (newAnnouncement != null)
        {
            newAnnouncement.Delete();
        }
    
        SPField newField = spWeb.Fields
            .Cast<SPField>()
            .FirstOrDefault(f => f.StaticName == "Team Project");
        if (newField != null)
        {
            newField.Delete();
        }
    
        SPContentType myContentType = 
            new SPContentType(spWeb.ContentTypes["Announcement"], 
                spWeb.ContentTypes, "New Announcements");
        myContentType.Group = "Custom Content Types";
    
        spWeb.Fields.Add("Team Project", SPFieldType.Text, true);
        SPFieldLink projFeldLink = new SPFieldLink(spWeb.Fields["Team Project"]);
        myContentType.FieldLinks.Add(projFeldLink);
    
        SPFieldLink companyFieldLink = new SPFieldLink(spWeb.Fields["Company"]);
        myContentType.FieldLinks.Add(companyFieldLink);
    
        spWeb.ContentTypes.Add(myContentType);
        myContentType.Update();
    }
    

    Die FeatureActivated-Methode wird ausgeführt, wenn Feature1 gestartet wird. Dieser Code bewirkt Folgendes:

    • Der Inhaltstyp New Announcements und das Feld Team Project werden gelöscht (soweit vorhanden).

    • Der übergeordnete Inhaltstyp Announcement wird basierend auf dem Inhaltstyp New Announcements erstellt.

    • Ein Textfeld mit dem Namen Team Projectwird erstellt und dem Inhaltstyp hinzugefügt.

    • Ein vorhandenes Feld mit dem Namen Company wird dem Inhaltstyp hinzugefügt.

  6. Entfernen Sie den Kommentar für die FeatureDeactivating-Methode.

  7. Fügen Sie in der FeatureDeactivating-Methode den folgenden Code ein.

    using (SPWeb spWeb = properties.Feature.Parent as SPWeb)
    {
        SPContentType myContentType = spWeb.ContentTypes["New Announcements"];
        spWeb.ContentTypes.Delete(myContentType.Id);
        spWeb.Fields["Team Project"].Delete();
    }
    

    Die FeatureDeactivating-Methode wird ausgeführt, wenn Feature1 deaktiviert wird. Dieser Code bewirkt Folgendes:

    • Der Inhaltstyp New Announcements wird gelöscht.

    • Das Textfeld Team Project wird gelöscht.

  8. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf CreateContentType, und klicken Sie dann auf Bereitstellen.

Überprüfen der ordnungsgemäßen Funktion des Projekts

Für diese Aufgabe überprüfen Sie das Vorhandensein des Inhaltstyps und der beiden Felder.

So testen Sie das Projekt

  1. Starten Sie Internet Explorer, und navigieren Sie zu der zuvor angegebenen Website.

  2. Klicken Sie in der linken oberen Ecke der Seite auf Websiteaktionen und dann auf Websiteeinstellungen.

  3. Klicken Sie unter Galerien auf Websitespalten.

  4. Klicken Sie in den Optionen von Gruppe anzeigen auf Benutzerdefinierte Spalten.

    Das neue Feld Team Project sollte angezeigt werden.

    Abbildung 1. Das Feld "Team Project"

    Teamprojekt (Feld)

  5. Klicken Sie auf Websiteaktionen und dann auf Websiteeinstellungen.

  6. Klicken Sie unter Galerien auf Websiteinhaltstypen.

  7. Klicken Sie in den Optionen von Gruppe anzeigen auf Benutzerdefinierte Inhaltstypen.

    Der neue Inhaltstyp New Announcements sollte angezeigt werden.

    Abbildung 2. Inhaltstyp "New Announcements"

    Neue Ankündigungen (Inhaltstyp)

Nächste Schritte