Freigeben über


Funktionsweise von SharePoint-Formularen

Letzte Änderung: Mittwoch, 7. Juli 2010

Gilt für: SharePoint Foundation 2010

Jeder Listentyp verfügt in der Regel über eine Reihe von ASPX-Formularseiten zum Anzeigen und Bearbeiten eines Elements und zum Erstellen eines neuen Elements (DispForm.aspx, EditForm.aspx und NewForm.aspx), die beim Bereitstellen von Listen bereitgestellt werden. Diese ASPX-Seiten werden im "Inhaltsbereich" bereitgestellt. Mit anderen Worten, sie befinden sich nicht unter %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS, und sie wirken nicht über das virtuelle Verzeichnis /_layouts. Für Dokumentbibliotheken werden diese Seite stattdessen innerhalb eines verborgenen Unterordners der Liste mit dem Namen forms bereitgestellt. Für andere SharePoint-Listen werden diese Seiten unter dem Listenstammordner bereitgestellt. Jede dieser ASPX-Seiten enthält ein Microsoft.SharePoint.WebPartPages.ListFormWebPart-Objekt, das zum Rendern des Formulars dient.

In Microsoft SharePoint Foundation 2010 wird Microsoft ASP.NET zum Anzeigen von Formularen verwendet. Jedes Formular besteht logisch aus einer Reihe von Steuerelementen (beispielsweise einem Steuerelement für die Symbolleiste). Ein spezielles, Iterator genanntes Steuerelement (Microsoft.SharePoint.WebControls.ListFieldIterator) dient dazu, die Auflistung der Listenfelder zu durchlaufen und jedes Feld zum Formular hinzuzufügen.

Optionen zum Anpassen von Formularvorlagen

In früheren Versionen von SharePoint Foundation erfolgte die Anpassung von Listenelementformularen normalerweise durch das Ändern der Formulardefinitionen in der Datei Schema.xml einer Liste. Das Form-Element enthielt die Renderdetails für einen bestimmten Formulartyp, einschließlich der Collaborative Application Markup Language-Unterelemente (CAML), die den in die Seite einzufügenden HTML-Code und das einzufügende Skript definierten. In SharePoint Foundation wird die Vorlagenfunktionalität verwendet, die in Microsoft ASP.NET-Steuerelementvorlagen integriert ist.

HinweisHinweis

Sie können immer noch benutzerdefinierte Formulardefinitionen mittels Schema.xml anwenden, wenn Sie das UseLegacyFormAttribut der Form-Elemente auf TRUE festlegen. Es empfiehlt sich jedoch, stattdessen ASP.NET-Steuerelemente zu verwenden.

Obwohl Formulare weiterhin in Schema.xml definiert werden können, können Sie nun die Vorzüge der umfassenden Funktionalität nutzen, die über ASP.NET-Steuerelementvorlagen für das Ändern von Formularen verfügbar gemacht werden. Steuerelementvorlagen enthalten eine Mischung aus HTML-Elementen und untergeordneten Steuerelementen, und sie fügen HTML-Code in die umgebende Seite oder das umgebende Steuerelement ein. Durch den Aufbau einer Hierarchie von Steuerelementvorlagen können Sie effektiv ein Vererbungsmodell für eine Webanwendung erstellen und Code effizienter wiederverwenden.

Mithilfe von Formularvorlagen können Sie steuern, wie Listenelementformulare gerendert werden. In der Datei Schema.xml der Listendefinition können Sie pro Listentyp anhand des Template-Attributs die IDs der Steuerelementvorlagen angeben, die zum Rendern der Formulare verwendet werden sollen. Sie müssen das Template-Attribut für jedes Formular angeben, in das Sie eine benutzerdefinierte Vorlage implementieren möchten, wobei es dieselbe oder verschiedene Vorlagen sein können. Wenn Sie keine benutzerdefinierte Vorlage für ein Formular angeben, wird von SharePoint Foundation standardmäßig die Standardvorlage implementiert. Benutzerdefinierte Steuerelementvorlagen müssen innerhalb einer ASCX-Datei in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES definiert werden. Informationen zur Verwendung von Microsoft Visual Studio zum Erstellen eines Benutzersteuerelements, das in SharePoint Foundation funktionsfähig ist, finden Sie unter Gewusst wie: Erstellen eines Benutzersteuerelements für eine SharePoint-Anwendungsseite oder ein SharePoint-Webpart.

VorsichtVorsicht

Durch das Außerkraftsetzen einer SharePoint Foundation-Standardvorlage ändert sich das Verhalten des Formulars in der gesamten Serverfarm, und es wird verhindert, dass das Formular das Standardverhalten der Vorlage beibehält, wenn eine Version aktualisiert wird. Erstellen Sie stattdessen eine eigene Listenvorlage, die eine benutzerdefinierte Formularvorlage verwendet, um benutzerdefiniertes Verhalten zu implementieren.

Als Beispiel können Sie das Rendern aller Formulare von Umfragelistenelementen außer Kraft setzen. In der Umfragelistendefinition in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\SurveysList\Survey\Schema.xml wird das Template-Attribut verwendet, um die ListForm-Vorlage für Formulare des Typs Element anzeigen und die SurveyForm-Vorlage für Formulare des Typs Element bearbeiten und Neues Element anzugeben. Das bedeutet, dass es Steuerelementvorlagen gibt, deren IDs mit ListForm und SurveyForm identisch sind und die sich im Ordner \ControlTemplates befinden, und dass Sie die Standardformularvorlagen, die für Formulare für Umfragelistenelemente verwendet werden, global ersetzen können, indem Sie dieses Vorlagen außer Kraft setzen. Definieren Sie hierfür in einer benutzerdefinierten ASCX-Datei benutzerdefinierte Vorlagen mit denselben IDs.

HinweisHinweis

Es kann nur eine Vorlage mit einer mit ListForm oder SurveyForm identischen ID geben, die verwendet wird. Sie sollten diese Erweiterungsfunktion deshalb sparsam verwenden. Die Verwendung doppelter IDs für benutzerdefinierte Vorlagen wird nicht unterstützt und kann zu unvorhersehbaren Ergebnissen führen.

Es ist auch möglich, benutzerdefinierte Formularvorlagen anhand des Inhaltstyps zu registrieren. Wenn Sie einen bestimmten Inhaltstyp verwenden, ist es möglich, für diesen Inhaltstyp ein benutzerdefiniertes Formular zu deklarieren, das anstelle des Dokumentbibliotheksformulars verwendet werden soll, das standardmäßig in Dokumentbibliotheken verwendet wird. Informationen zum Deklarieren benutzerdefinierter Formulare für einen Inhaltstyp finden Sie unter Übersicht über das FormTemplates-Schema.

Andere Möglichkeiten zum Anzeigen von Formularen werden unterstützt. Es ist nicht möglich, das vorhandene ListFormWebPart-Steuerelement aus einer Listenformularseite zu entfernen, aber Sie können das Steuerelement ausblenden. Anschließend können Sie beispielsweise ein DataFormWebPart-Objekt hinzufügen und XSLT verwenden, um Formulare für Elemente zu rendern. Sie können außerdem die Formularseiten-URL für den Inhaltstyp (Eigenschaft DisplayFormUrl, EditFormUrl oder NewFormUrl) festlegen, um Benutzer zu einer benutzerdefinierten Formularseite umzuleiten. Darüber hinaus können Sie das Microsoft.SharePoint.WebControls.SPDataSource-Steuerelement verwenden, um das Formular an einfache ASP.NET-Steuerelemente zu binden und um Daten zu aktualisieren.

Wichtiger HinweisWichtig

Obwohl es möglich ist, Webparts zu Formularen des Typs Anzeigen, Bearbeiten und Neu für Listenelemente (DispForm.aspx, EditForm.aspx und NewForm.aspx) hinzuzufügen, wird dies in SharePoint Foundation weder empfohlen noch unterstützt. Das Hinzufügen von Webparts zu Listenansichtsseiten (AllItems.aspx) wird unterstützt.