Клиентские объекты можно использовать в методах запроса
Дата последнего изменения: 9 февраля 2010 г.
Применимо к: SharePoint Foundation 2010
Доступно на сайте SharePoint Online
В отличие от значений методов или свойств и объектов значений при возврате клиентского объекта с помощью метода или свойства можно использовать объект как параметр другого метода или свойства в том же запросе. Дополнительные сведения о клиентских объектах см. в статье Клиентские объекты, объекты значений и скалярные свойства.
В следующем примере в одном запросе используются несколько клиентских объектов для возврата определенного элемента списка. В отличие от того, что обычно происходит при работе со значениями свойств, в данном примере нужен всего один вызов метода ExecuteQuery() or ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) (JavaScript: executeQueryAsync(succeededCallback, failedCallback)).
using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointServices.Samples
{
class GetListItem
{
static void Main()
{
ClientContext clientContext = new ClientContext("http://MyServer/sites/MySiteCollection");
Web oWebsite = clientContext.Web;
List oList = oWebsite.Lists.GetByTitle("Announcements");
ListItem oItem = oList.GetItemById(1);
clientContext.Load(oItem);
clientContext.ExecuteQuery();
Console.WriteLine(oItem["Title"]);
}
}
}
Imports System
Imports Microsoft.SharePoint.Client
Namespace Microsoft.SDK.SharePointServices.Samples
Class GetListItem
Shared Sub Main()
Dim clientContext As New ClientContext("http://MyServer/sites/MySiteCollection")
Dim oWebsite As Web = clientContext.Web
Dim oList As List = oWebsite.Lists.GetByTitle("Announcements")
Dim oItem As ListItem = oList.GetItemById(1)
clientContext.Load(oItem)
clientContext.ExecuteQuery()
Console.WriteLine(oItem("Title"))
End Sub
End Class
End Namespace
function getListItem() {
var clientContext = new SP.ClientContext('/sites/TestWebs/TestWeb1');
var oWebsite = clientContext.get_web();
var oList = oWebsite.get_lists().getByTitle('Announcements');
this.oListItem = oList.getItemById(1);
clientContext.load(oListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
alert(oListItem.get_item('Title'));
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
Microsoft SharePoint Foundation 2010 следит за тем, как объекты создаются с помощью путей к объектам. Для возврата элемента списка в данном примере используется путь объекта, получаемый при использовании нескольких членов: свойства Web (JavaScript: web) клиентского контекста, свойства Lists (JavaScript: lists) веб-сайта, метода GetByTitle(String) (JavaScript: getByTitle(strListName)) коллекции списков и метода GetItemById(String) (JavaScript: getItemById(id)) списка. Так как объектная модель следит за путем объекта, который используется для создания клиентского объекта, код может продолжить использовать объект как параметр для вызова других методов в том же запросе.
См. также
Концепции
Вызов Load и ExecuteQuery перед доступом к свойствам значения
Объекты значения не могут быть использованы в методах запроса
Получение групповых данных из одного объекта
При получении клиентского объекта получаются не все свойства