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
Richtlinien für das Clientobjektmodell
Unterschiede zwischen verwalteten und ECMAScript-Objektmodellen
Allgemeine Programmieraufgaben
Weitere Ressourcen
Verwenden des verwalteten Clientobjektmodells von SharePoint Foundation 2010