Gewusst wie: Erstellen oder Löschen von Listen
Letzte Änderung: Freitag, 27. Mai 2011
Gilt für: SharePoint Foundation 2010
Inhalt dieses Artikels
Erstellen einer Liste mit einem Listenvorlagentyp
Erstellen einer Liste mit einer Listenvorlage
Löschen einer Liste
Verfügbar in SharePoint Online
In den Beispielen dieses Themas wird die Verwendung des SharePoint Foundation-Serverobjektmodells zur Verwendung von Listen in einer Website oder Websitesammlung erläutert.
Hinweis |
---|
In den Codebeispielen dieses Themas werden Elemente der Microsoft.SharePoint.SPContext-Klasse zum Abrufen der aktuellen Websitesammlung, Website oder Liste verwendet. Außerhalb eines HTTP-Kontexts, beispielsweise in einer Konsolenanwendung oder einer Windows-Anwendung, rufen Sie Verweise auf wichtige Objekte mit einer anderen Methode ab. An Stelle des Microsoft.SharePoint.SPContext-Objekts verwenden Sie den SPSite()-Konstruktor, um eine bestimmte Websitesammlung zu instanziieren und Objekte abzurufen. Weitere Informationen finden Sie unter Abrufen von Verweisen auf Websites, Webanwendungen und andere Schlüsselobjekte. |
Erstellen einer Liste mit einem Listenvorlagentyp
Wenn Sie eine neue Liste erstellen möchten, verwenden Sie eine der Add()-Methodenüberlagerungen der SPListCollection-Klasse.
Im folgenden Beispiel wird basierend auf der Benutzereingabe eine neue allgemeine Liste, eine Ereignisliste oder eine Ankündigungsliste erstellt. Mit einer Switch-Klausel wird der vom Benutzer angegebene Listentyp bestimmt, und der Listenvorlagentyp wird entsprechend festgelegt.
Dim mySite As SPWeb = SPContext.Current.Web
Dim lists As SPListCollection = mySite.Lists
Dim listTitle As String = TextBox1.Text
Dim listDescription As String = TextBox2.Text
Dim listType As String = ListBox1.SelectedItem.Text
Dim listTemplateType As New SPListTemplateType()
Select Case listType
Case "Generic List"
listTemplateType = SPListTemplateType.GenericList
Exit
Case "Events"
listTemplateType = SPListTemplateType.Events
Exit
Case "Announcements"
listTemplateType = SPListTemplateType.Announcements
Exit
End Select
lists.Add(listTitle, listDescription, listTemplateType)
SPWeb mySite = SPContext.Current.Web;
SPListCollection lists = mySite.Lists;
string listTitle = TextBox1.Text;
string listDescription = TextBox2.Text;
string listType = ListBox1.SelectedItem.Text;
SPListTemplateType listTemplateType = new SPListTemplateType();
switch(listType)
{
case "Generic List":
{
listTemplateType = SPListTemplateType.GenericList;
break;
}
case "Events":
{
listTemplateType = SPListTemplateType.Events;
break;
}
case "Announcements":
{
listTemplateType = SPListTemplateType.Announcements;
break;
}
}
lists.Add(listTitle, listDescription, listTemplateType);
Im Beispiel wird ein SPListTemplateType-Objekt instanziiert, das den vom Benutzer angegebenen Listenvorlagentyp enthält. Dieses Objekt muss als Parameter in der Add(String, String, SPListTemplateType)-Methode übergeben werden. Im Beispiel wird vorausgesetzt, dass zwei Textfelder vorhanden sind, in die der Benutzer einen Titel und eine Beschreibung eingeben kann. Zudem muss eine Dropdownliste vorhanden sein, in der die Listentypen aufgeführt sind, aus denen der Benutzer auswählen kann.
Erstellen einer Liste mit einer Listenvorlage
Zusätzlich zur Verwendung der SPListTemplateType-Enumeration zum Erstellen einer Liste aus einem Vorlagentyp können Sie auch eine Liste aus einem SPListTemplate-Objekt erstellen, das entweder eine bestimmte Listenvorlage darstellt, die in der Benutzeroberfläche durch Speichern einer vorhandenen Liste als Vorlage erstellt wurde, oder ein Listenschema in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES, das einen Listentyp definiert. Die ListTemplates-Eigenschaft der SPWeb-Klasse kann verwendet werden, um eine Auflistung der Listenvorlagenobjekte zurückzugeben, und mit einer Namensindexerstellung kann die zu verwendende Listenvorlage angegeben werden. Dies wird im folgenden Beispiel gezeigt, in dem das Vorhandensein einer Website Decision Meetings Workspace vorausgesetzt wird.
Dim mySite As SPWeb = SPContext.Current.Web
Dim template As SPListTemplate = mySite.ListTemplates("Decisions")
mySite.Lists.Add("My Decisions", "This is a list of decisions",
template)
SPWeb mySite = SPContext.Current.Web;
SPListTemplate template = mySite.ListTemplates["Decisions"];
mySite.Lists.Add("My Decisions", "This is a list of decisions",
template);
Im nächsten Beispiel wird die GetCustomListTemplates-Methode der SPSite-Klasse verwendet. Hier werden die benutzerdefinierten Listenvorlagen für eine bestimmte Website zurückgegeben und eine neue Liste erstellt, die auf einer angegebenen Listenvorlage basiert.
Dim siteCollection As SPSite = SPContext.Current.Site
Dim mySite As SPWeb = SPContext.Current.Web
Dim listTemplates As SPListTemplateCollection = siteCollection.GetCustomListTemplates(mySite)
Dim listTemplate As SPListTemplate = listTemplates("Custom List Template")
mySite.Lists.Add("Custom List", "A list created from a custom list template in the list template catalog", listTemplate)
SPSite siteCollection = SPContext.Current.Site;
SPWeb mySite = SPContext.Current.Web;
SPListTemplateCollection listTemplates = siteCollection.GetCustomListTemplates(mySite);
SPListTemplate listTemplate = listTemplates["Custom List Template"];
mySite.Lists.Add("Custom List", "A list created from a custom list template in the list template catalog", listTemplate);
Sie können eine Liste mehreren Websites in einer Websitesammlung hinzufügen, wie im folgenden Beispiel gezeigt. Hier wird auf der Grundlage des Titels und der Beschreibung, die aus zwei Textfeldern an den Code übergeben werden, eine allgemeine Liste auf jeder Website erstellt. Mit der AllWebs-Eigenschaft der SPSite-Klasse wird die Auflistung aller Websites zurückgegeben, die auf der Website vorhanden sind.
Im Beispiel wird das Vorhandensein von zwei Textfeldern auf der ASPX-Seite vorausgesetzt, die ein Formular enthält.
Dim listTitle As String = TextBox1.Text.ToString()
Dim listDescription As String = TextBox2.Text.ToString()
Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb
For Each web In allWebs
Dim allLists As SPListCollection = web.Lists
allLists.Add(listTitle, listDescription, SPListTemplateType.GenericList)
Next web
string listTitle = TextBox1.Text.ToString();
string listDescription = TextBox2.Text.ToString();
SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;
foreach (SPWeb web in allWebs){
SPListCollection allLists = web.Lists;
allLists.Add(listTitle,listDescription, SPListTemplateType.GenericList);
}
Löschen einer Liste
Zum Löschen einer Liste müssen Sie die GUID der Liste als Parameter für die Delete-Methode angeben. Verwenden Sie zur Suche nach der GUID die ID-Eigenschaft der SPList-Klasse.
Dim mySite As SPWeb = SPContext.Current.Web
Dim lists As SPListCollection = mySite.Lists
Dim list As SPList = lists(TextBox1.Text)
Dim listGuid As System.Guid = list.ID
lists.Delete(listGuid)
SPWeb mySite = SPContext.Current.Web;
SPListCollection lists = mySite.Lists;
SPList list = lists[TextBox1.Text];
System.Guid listGuid = list.ID;
lists.Delete(listGuid);
Im vorherigen Beispiel wird vorausgesetzt, dass ein Textfeld vorhanden ist, in dem der Benutzer den Namen der Liste angibt.
Zum Löschen einer Liste von mehreren Websites werden im folgenden Beispiel geschachtelte Schleifen zum Drilldown zu einer Liste verwendet, deren Titel mit dem in einem Textfeld angegebenen Titel übereinstimmt. Im Beispiel wird das Vorhandensein eines Textfelds auf der ASPX-Seite vorausgesetzt, die ein Formular enthält.
Dim mySite As SPSite = SPContext.Current.Site
Dim allWebs As SPWebCollection = mySite.AllWebs
Dim web As SPWeb
For Each web In allWebs
Dim allLists As SPListCollection = web.Lists
Dim i As Integer
For i = 0 To allLists.Count - 1
Dim list As SPList = allLists(i)
If list.Title = TextBox1.Text Then
Dim listGuid As Guid = list.ID
allLists.Delete(listGuid)
End If
Next i
Next web
SPSite mySite = SPContext.Current.Site;
SPWebCollection allWebs = mySite.AllWebs;
foreach (SPWeb web in allWebs){
SPListCollection allLists = web.Lists;
for (int i=0; i<allLists.Count; i++)
{
SPList list = allLists[i];
if (list.Title == TextBox1.Text)
{
Guid listGuid = list.ID;
allLists.Delete(listGuid);
}
}}
Im Beispiel wird die Title-Eigenschaft der SPList-Klasse zum Identifizieren einer Liste in der Auflistung von Listen für jede Website verwendet, die mit dem angegebenen Titel übereinstimmt. Die ID-Eigenschaft gibt die GUID (Globally Unique Identifier) der Liste zurück, die als Parameter für die Delete-Methode übergeben wird.
In den vorherigen Beispielen ist eine using-Direktive (Imports in Microsoft Visual Basic) für den Microsoft.SharePoint-Namespace erforderlich.
Siehe auch
Referenz
Konzepte
Arbeiten mit Listenobjekten und Auflistungen
Verwenden von Visual Studio für die SharePoint-Enwicklung
Sicherheitsüberprüfung und POSTs zum Aktualisieren von Daten