Gewusst wie: Erstellen, Aktualisieren und Löschen von Listen
Letzte Änderung: Freitag, 29. April 2011
Gilt für: SharePoint Foundation 2010
Inhalt dieses Artikels
Erstellen und Aktualisieren einer Liste
Hinzufügen eines Felds zu einer Liste
Löschen einer Liste
Verfügbar in SharePoint Online
Sie können Listen über das Clientobjektmodell auf ähnliche Weise erstellen, aktualisieren und löschen wie mithilfe des Serverobjektmodells. Allerdings werden Clientvorgänge erst abgeschlossen, wenn Sie die Methode ExecuteQuery() oder ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)) aufrufen.
Erstellen und Aktualisieren einer Liste
Zum Erstellen eines Listenobjekts verwenden Sie die ListCreationInformation-Klasse (JavaScript: ListCreationInformation), um die Eigenschaften zu definieren. Dann übergeben Sie dieses Objekt der Add(ListCreationInformation)-Methode (JavaScript: add(parameters)) der ListCollection-Klasse (JavaScript: ListCollection). Im folgenden Beispiel wird eine neue Ankündigungsliste erstellt.
using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class CreateList
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
Web oWebsite = clientContext.Web;
ListCreationInformation listCreationInfo = new ListCreationInformation();
listCreationInfo.Title = "My Announcements List";
listCreationInfo.TemplateType = (int)ListTemplateType.Announcements;
List oList = oWebsite.Lists.Add(listCreationInfo);
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class CreateList
Shared Sub Main()
Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"
Dim clientContext As New ClientContext(siteUrl)
Dim oWebsite As Web = clientContext.Web
Dim listCreationInfo As New ListCreationInformation()
listCreationInfo.Title = "My Announcements List"
listCreationInfo.TemplateType = CInt(ListTemplateType.Announcements)
Dim oList As List = oWebsite.Lists.Add(listCreationInfo)
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function createList() {
var clientContext = new SP.ClientContext(siteUrl);
var oWebsite = clientContext.get_web();
var listCreationInfo = new SP.ListCreationInformation();
listCreationInfo.set_title('My Announcements List');
listCreationInfo.set_templateType(SP.ListTemplateType.announcements);
this.oList = oWebsite.get_lists().add(listCreationInfo);
clientContext.load(oList);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = oList.get_title() + ' created.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Wenn Sie die Liste nach dem Hinzufügen aktualisieren müssen, können Sie Listeneigenschaften festlegen und die Update()-Methode (JavaScript: update()) aufrufen, bevor Sie ExecuteQuery() oder ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)) aufrufen. Dies wird in den folgenden Änderungen des vorherigen Beispiels gezeigt.
.
.
.
.
List oList = oWebsite.Lists.Add(listCreationInfo);
oList.Description = "New Announcements List";
oList.Update();
clientContext.ExecuteQuery();
.
.
.
.
Dim oList As List = oWebsite.Lists.Add(listCreationInfo)
oList.Description = "New Announcements List"
oList.Update()
clientContext.ExecuteQuery()
.
.
.
.
this.oList = oWebsite.get_lists().add(listCreationInfo);
oList.set_description('New Announcements List');
oList.update();
clientContext.load(oList);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
Hinzufügen eines Felds zu einer Liste
Verwenden Sie die Methode Add(Field) (JavaScript: add(field)) oder AddFieldAsXml(String, Boolean, AddFieldOptions) (JavaScript: addFieldAsXml(schemaXml, addToDefaultView, options)) der FieldCollection-Klasse (JavaScript: FieldCollection), um der Feldauflistung einer Liste ein Feld hinzuzufügen. Im folgenden Beispiel wird ein Feld erstellt und aktualisiert, bevor ExecuteQuery() (JavaScript: executeQueryAsync(succeededCallback, failedCallback)) aufgerufen wird.
using System;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class Program
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
SP.List oList = clientContext.Web.Lists.GetByTitle("Announcements");
SP.Field oField = oList.Fields.AddFieldAsXml("<Field DisplayName='MyField' Type='Number' />",
true, AddFieldOptions.DefaultValue);
SP.FieldNumber fieldNumber = clientContext.CastTo<FieldNumber>(oField);
fieldNumber.MaximumValue = 100;
fieldNumber.MinimumValue = 35;
fieldNumber.Update();
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class AddFieldToList
Shared Sub Main()
Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"
Dim clientContext As New ClientContext(siteUrl)
Dim oList As SP.List = clientContext.Web.Lists.GetByTitle("My Announcements List")
Dim oField As SP.Field = oList.Fields.AddFieldAsXml( _
"<Field DisplayName='MyField' Type='Number' />", _
True, AddFieldOptions.DefaultValue)
Dim fieldNumber As SP.FieldNumber = clientContext.CastTo(Of FieldNumber)(oField)
fieldNumber.MaximumValue = 100
fieldNumber.MinimumValue = 35
fieldNumber.Update()
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function addFieldToList() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
this.oField = oList.get_fields().addFieldAsXml('<Field DisplayName=\'MyField\' Type=\'Number\' />', true, SP.AddFieldOptions.defaultValue);
var fieldNumber = clientContext.castTo(oField,SP.FieldNumber);
fieldNumber.set_maximumValue(100);
fieldNumber.set_minimumValue(35);
fieldNumber.update();
clientContext.load(oField);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = oField.get_title() + ' added.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Im vorherigen Beispiel wird die CastTo<T>(ClientObject)-Methode (JavaScript: castTo(obj, type)) des Clientkontextobjekts verwendet, um das Feld in einen FieldNumber-Typ (JavaScript: FieldNumber) umzuwandeln. Dies muss geschehen, bevor die Abfrage ausgeführt wird. Anderenfalls ist dem Clientobjektmodell der tatsächliche Typ des zurückgegebenen oField-Objekts nicht bekannt, und es wird standardmäßig der Field-Typ (JavaScript: Field) verwendet.
Löschen einer Liste
Zum Löschen einer Liste rufen Sie wie im folgenden Beispiel gezeigt die DeleteObject()-Methode (JavaScript: deleteObject()) des Listenobjekts auf.
using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class DeleteList
{
static void Main()
{
string siteUrl = "http://MyServer/sites/MySiteCollection";
ClientContext clientContext = new ClientContext(siteUrl);
Web oWebsite = clientContext.Web;
List oList = oWebsite.Lists.GetByTitle("My Announcements List");
oList.DeleteObject();
clientContext.ExecuteQuery();
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class DeleteList
Shared Sub Main()
Dim siteUrl As String = "http://MyServer/sites/MySiteCollection"
Dim clientContext As New ClientContext(siteUrl)
Dim oWebsite As Web = clientContext.Web
Dim oList As List = oWebsite.Lists.GetByTitle("My Announcements List")
oList.DeleteObject()
clientContext.ExecuteQuery()
End Sub
End Class
End Namespace
var siteUrl = '/sites/MySiteCollection';
function deleteList() {
var clientContext = new SP.ClientContext(siteUrl);
var oWebsite = clientContext.get_web();
this.listTitle = 'My Announcements List';
this.oList = oWebsite.get_lists().getByTitle(listTitle);
oList.deleteObject();
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
var result = listTitle + ' deleted.';
alert(result);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Weitere Informationen und Beispiele zum Arbeiten mit Listen und anderen Clientobjekten im Kontext des Microsoft SharePoint Foundation 2010 Silverlight-Objektmodells finden Sie unter Verwenden des Silverlight-Objektmodells.
Siehe auch
Konzepte
Richtlinien für das Clientobjektmodell
Gewusst wie: Abrufen von Listen
Allgemeine Programmieraufgaben