Freigeben über


Erstellen von Clientobjekten

Letzte Änderung: Freitag, 27. Mai 2011

Gilt für: SharePoint Foundation 2010

Verfügbar in SharePoint Online

Wenn ein Clientobjekt wie z. B. ein List-Objekt (JavaScript: List) erstellt werden kann, weist die entsprechende Clientobjektsammlung wie z. B. ListCollection (JavaScript: ListCollection) eine Add-Methode auf, die ein ClientObjectCreationInformation-Objekt akzeptiert, wie z. B. ListCreationInformation (JavaScript: ListCreationInformation), das alle erforderlichen Informationen zum Erstellen des neuen Objekts enthält.

Im folgenden Beispiel wird WebCreationInformation (JavaScript: WebCreationInformation) zusammen mit der Add(WebCreationInformation)-Methode (JavaScript: add(parameters)) zum Erstellen einer untergeordneten Website unter einer angegebenen Website verwendet.

ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection/MyWebSite");
WebCollection collWeb = clientContext.Web.Webs;

WebCreationInformation webCreationInfo = new WebCreationInformation();
webCreationInfo.Title = "My New Web Site";
webCreationInfo.Description = "Description of new Web site...";
webCreationInfo.Language = 1033;
webCreationInfo.Url = "MyNewWebSite";
webCreationInfo.UseSamePermissionsAsParentSite = true;
webCreationInfo.WebTemplate = "STS#0";

Web oNewWebsite = collWeb.Add(webCreationInfo);
clientContext.ExecuteQuery();
Dim clientContext As New ClientContext("http://MyServer/sites/MySiteCollection/MyWebSite")
Dim collWeb As WebCollection = clientContext.Web.Webs
         
Dim webCreationInfo As New WebCreationInformation()
webCreationInfo.Title = "My New Web Site"
webCreationInfo.Description = "Description of new Web site..."
webCreationInfo.Language = 1033
webCreationInfo.Url = "MyNewWebSite"
webCreationInfo.UseSamePermissionsAsParentSite = True
webCreationInfo.WebTemplate = "STS#0"
         
Dim oNewWebsite As Web = collWeb.Add(webCreationInfo)
clientContext.ExecuteQuery()
function createWebsite() {

    var clientContext = new SP.ClientContext('http://MyServer/sites/MySiteCollection/MyWebSite');
    var collWeb = clientContext.get_web().get_webs();

    var webCreationInfo = new SP.WebCreationInformation();
    webCreationInfo.set_title('My New Web Site');
    webCreationInfo.set_description('Description of new Web site...');
    webCreationInfo.set_language(1033);
    webCreationInfo.set_url('MyNewWebSite');
    webCreationInfo.set_useSamePermissionsAsParentSite(true);
    webCreationInfo.set_webTemplate('STS#0');

    var oNewWebsite = collWeb.add(webCreationInfo);


    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {
    alert("Created Web site.");
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Im vorherigen Beispiel wird mit der Add(WebCreationInformation)-Methode (JavaScript: add(parameters)) sofort eine Website in der Clientobjektsammlung erstellt, ohne auf den nachfolgenden Abruf von Sammlungsdaten oder auf einen Aufruf von ExecuteQuery() oder ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)) zu warten.

Mit einem ClientObjectCreationInformation-Objekt können Sie zahlreiche Objekte erstellen. Beispielsweise muss zum Erstellen eines Navigationsknotens auch ein ClientObjectCreationInformation-Objekt verwendet werden. Im folgenden Beispiel wird mithilfe eines NavigationNodeCreationInformation-Objekts (JavaScript: NavigationNodeCreationInformation) ein Navigationsknoten definiert und mithilfe dieses Objekts ein Link im Bereich Schnellstart der angegebenen Website hinzugefügt. In diesem Beispiel wird einer Liste auf einer anderen Website ein Link als zweiter untergeordneter Knoten unter dem Knoten Listen der obersten Ebene hinzugefügt.

ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection/MyWebSite");

NavigationNodeCollection collNavNode = clientContext.Web.Navigation.QuickLaunch;

clientContext.Load(collNavNode);
clientContext.ExecuteQuery();

NavigationNodeCollection collChildNavNode = collNavNode[1].Children;

clientContext.Load(collChildNavNode);
clientContext.ExecuteQuery();

NavigationNodeCreationInformation navNodeCreationInfo = new NavigationNodeCreationInformation();

navNodeCreationInfo.PreviousNode = collChildNavNode[0];
navNodeCreationInfo.Title = "My Navigation Node";
navNodeCreationInfo.Url = "http://MyServer/sites/MySiteCollection/MyTargetListWebSite/Lists/MyTargetList/AllItems.aspx";

collChildNavNode.Add(navNodeCreationInfo);

clientContext.ExecuteQuery();
Dim clientContext As New ClientContext("http://MyServer/sites/MySiteCollection/MyWebSite")
         
Dim collNavNode As NavigationNodeCollection = clientContext.Web.Navigation.QuickLaunch
         
clientContext.Load(collNavNode)
clientContext.ExecuteQuery()
         
Dim collChildNavNode As NavigationNodeCollection = collNavNode(1).Children
         
clientContext.Load(collChildNavNode)
clientContext.ExecuteQuery()
         
Dim navNodeCreationInfo As New NavigationNodeCreationInformation()
         
navNodeCreationInfo.PreviousNode = collChildNavNode(0)
navNodeCreationInfo.Title = "My Navigation Node"
navNodeCreationInfo.Url = "http://MyServer/sites/MySiteCollection/MyTargetListWebSite/Lists/MyTargetList/AllItems.aspx"
         
collChildNavNode.Add(navNodeCreationInfo)
         
clientContext.ExecuteQuery()
function getNavNodes() {
    this.clientContext = new SP.ClientContext('/sites/MySiteCollection/MyWebSite');
    this.collNavNode = clientContext.get_web().get_navigation().get_quickLaunch();

    clientContext.load(collNavNode);
    clientContext.executeQueryAsync(Function.createDelegate(this, this.getChildNavNodes), Function.createDelegate(this, this.onQueryFailed));
}

function getChildNavNodes() {

    this.collChildNavNode = collNavNode.get_item(1).get_children();
    clientContext.load(collChildNavNode);
    clientContext.executeQueryAsync(Function.createDelegate(this, this.createNavNode), Function.createDelegate(this, this.onQueryFailed));
}

function createNavNode() {

    var navNodeCreationInfo = new SP.NavigationNodeCreationInformation();
    navNodeCreationInfo.set_previousNode(collChildNavNode.get_item(0));
    navNodeCreationInfo.set_title('My Navigation ECMA Node');
    navNodeCreationInfo.set_url('http://MyServer/sites/MySiteCollection/MyTargetListWebSite/Lists/MyTargetList/AllItems.aspx');

    collChildNavNode.add(navNodeCreationInfo);

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}

function onQuerySucceeded() {

    alert("Created navigation node.");
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Im vorherigen Beispiel wird ein Link zu einer anderen Website innerhalb einer Websitesammlung erstellt. Wenn Sie einen externen Link zu einem Speicherort außerhalb der Websitesammlung erstellen möchten, legen Sie die IsExternal-Eigenschaft (JavaScript: IsExternal) des NavigationNodeCreationInformation-Objekts (JavaScript: NavigationNodeCreationInformation) auf true fest, bevor Sie die Add(NavigationNodeCreationInformation)-Methode (JavaScript: add(parameters)) aufrufen.

Weitere Informationen zum Erstellen von Clientobjekten im Kontext einer Silverlight-Anwendung finden Sie unter Verwenden des Silverlight-Objektmodells.

Siehe auch

Konzepte

Gewusst wie: Arbeiten mit Websites

Gewusst wie: Erstellen, Aktualisieren und Löschen von Listen

Gewusst wie: Erstellen, Aktualisieren und Löschen von Listenelementen

Gewusst wie: Verwenden von Benutzern und Gruppen

Objektmodellhierarchie und Objektidentität

Clientkontext als zentrales Objekt

Clientobjekte, Wertobjekte und skalare Eigenschaften

Übersicht über den Datenabruf

Richtlinien für das Clientobjektmodell

Unterschiede zwischen verwalteten und ECMAScript-Objektmodellen

Allgemeine Programmieraufgaben

Weitere Ressourcen

Clientklassenbibliothek

ECMAScript-Klassenbibliothek

Verwenden des verwalteten Clientobjektmodells von SharePoint Foundation 2010

Ressourcencenter für das Clientobjektmodell