Я хочу показать список на сайте .aspx. Поэтому я должен использовать объектную модель клиента SP.
Я нашел следующий учебник, но он не использует клиентские библиотеки: http://social.technet.microsoft.com/wiki/contents/articles/30287.binding-gridview-with-sharepoint-list.aspx
Мой код пока выглядит следующим образом:
ClientContext clientContext = GetContext(accessToken);
Web web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
// Get the email input list.
List inboxList = web.Lists.GetByTitle("InboxList");
Microsoft.SharePoint.Client.ListItemCollection items = inboxList.GetItems(new CamlQuery());
clientContext.Load(inboxList);
clientContext.Load(items, ic => ic.Include(i => i["DisplayName"], i => i["Client_Title"], i => i["HasUniqueRoleAssignments"]));
clientContext.ExecuteQuery();
foreach (Microsoft.SharePoint.Client.ListItem i in items)
{
clientContext.Load(i);
}
clientContext.ExecuteQuery();
oGrid.DataSource = items;
oGrid.DataBind();
Но это показывает только некоторые «метаданные» коллекции элементов списка, см. снимок экрана:
Если я использую oGrid.DataSource = inboxList;
, я получаю InvalidOperationException
, потому что источник данных не является типом IListSource, IEnumerable или IDataSource.
Если я использую oGrid.DataSource = inboxList.DataSource;
, я получаю PropertyOrFieldNotInitializedException
, но я не знаю, как загрузить этот атрибут (через clientContext.Load это не сработало)?!