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

Erstellen von Clientobjekten

Richtlinien für das Clientobjektmodell

Übersicht über den Datenabruf

Gewusst wie: Abrufen von Listen

Allgemeine Programmieraufgaben

Weitere Ressourcen

Clientklassenbibliothek

ECMAScript-Klassenbibliothek