[英]Retrieve list item using CSOM on SharePoint online isn't working
m 使用提供程序托管模型在 SharePoint Online 上开发应用程序模型。
从 clientwebpart,我想访问 Sharepoint 列表项。 我可以访问列表对象但无法获取列表项(始终为空)。 我已经按照“SharePoint 示例包的应用程序 - SharePoint 2013 通过在应用程序中使用 CSOM 执行基本数据访问操作”中的示例代码进行操作,但仍然无法正常工作。
这是我的代码:
SharePointContextToken contextToken;
Uri sharepointUrl;
string accessToken;
TokenHelper.TrustAllCertificates();
string contextTokenString = TokenHelper.GetContextTokenFromRequest(Request);
if (contextTokenString != null)
{
contextToken = TokenHelper.ReadAndValidateContextToken(contextTokenString, Request.Url.Authority);
sharepointUrl = new Uri(Request.QueryString["SPHostUrl"]);
accessToken = TokenHelper.GetAccessToken(contextToken, sharepointUrl.Authority).AccessToken;
using (ClientContext clientContext = TokenHelper.GetClientContextWithAccessToken(sharepointUrl.ToString(), accessToken))
{
Web web = clientContext.Web;
ListCollection lists = web.Lists;
List selectedList = lists.GetByTitle("LeaveCategory");
clientContext.Load<ListCollection>(lists); // this lists object is loaded successfully
clientContext.Load<List>(selectedList); // this list object is loaded successfully
clientContext.ExecuteQuery();
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = @"<View><Query><Where><IsNotNull><FieldRef Name='ID' /></IsNotNull></Where></Query><ViewFields><FieldRef Name='ID' /></ViewFields></View>";
Microsoft.SharePoint.Client.ListItemCollection listItems = selectedList.GetItems(camlQuery);
clientContext.Load<Microsoft.SharePoint.Client.ListItemCollection>(listItems); // problem here, this list items is return empty
clientContext.ExecuteQuery();
}
}
我犯了什么小错误吗?
此外,我正在尝试创建全新的项目并遵循How to: Create a basic provider-hosted app for SharePoint 的说明,并附加代码以检索列表项,但它仍返回 0 项。
有没有人成功实现过这一目标?
它现在工作,
这是因为我们必须在文件 AppManifest.xml 中为应用程序添加特定权限
我在范围内添加“列表”并授予它“完全控制”权限
仅在下面与 List 范围完全权限一起执行后,它对我有用:
在 Scope 单元格中,从下拉列表中选择 Web。
在权限单元格中,从下拉列表中选择读取。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.