Поделиться через


Клиентские объекты можно использовать в методах запроса

Дата последнего изменения: 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 перед доступом к свойствам значения

Объекты значения не могут быть использованы в методах запроса

Получение групповых данных из одного объекта

При получении клиентского объекта получаются не все свойства