![](/img/trans.png)
[英]Microsoft Graph API - Timeout while getting list of items in Sharepoint Document Library (C# ASP DotNet)
[英]Sharepoint List Items values with Graph API
我有一個 SharePoint 列表,我可以通過圖形 API 成功連接到它。它拉出列表項,但似乎只顯示基本數據。 如何獲取字段和這些字段中包含的數據,以便我可以顯示/更新該數據?
另外,我假設 SPO Graph API enpoint 是: https://graph.microsoft.com/v1.0/
var assetlist = await graphClient
.Sites[AllCompanySiteID]
.Lists[CurrentBuildsListID]
.Items
.Request()
.GetAsync();
totalitems.AddRange(assetlist.CurrentPage);
while (assetlist.NextPageRequest != null)
{
assetlist = assetlist.NextPageRequest.GetAsync().Result;
totalitems.AddRange(assetlist.CurrentPage);
}
目前尚不清楚您是想 (1)僅獲取數據字段和僅更新數據字段,還是 (2) 您需要從選擇中更新數據字段- 如有疑問,我會寫這兩種方法。 如果您的需求是第 (2) 項,您可能希望映射/建模業務規則以開發例程。 根據 Microsoft Docs,以下示例:
(1)僅獲取數據字段:
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var queryOptions = new List<QueryOption>()
{
new QueryOption("expand", "fields(select=Field1,Field2,Field3)")
};
var items = await graphClient.Sites["{site-id}"].Lists["{list-id}"].Items
.Request( queryOptions )
.GetAsync();
(1)僅更新數據字段:
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var fieldValueSet = new FieldValueSet
{
AdditionalData = new Dictionary<string, object>()
{
{"Field1", "Test1"},
{"Field2", "Test2"}
}
};
await graphClient.Sites["{site-id}"].Lists["{list-id}"].Items["{listItem-id}"].Fields
.Request()
.UpdateAsync(fieldValueSet);
(2) Update Data Fields from Selection例子:
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var queryOptions = new List<QueryOption>()
{
new QueryOption("expand", "fields(select=Field1,Field2,Field3)")
};
var items = await graphClient.Sites["{site-id}"].Lists["{list-id}"].Items
.Request( queryOptions )
.GetAsync();
foreach(var item in items)
{
//an example of Business Rule: Update item based by some Select into current item
if(null != item.Fields.AdditionalData["Field1"] && !string.IsNullOrWhiteSpace(item.Fields.AdditionalData["Field1"].ToString()))
{
var fieldValueSet = new FieldValueSet
{
AdditionalData = new Dictionary<string, object>()
{
{"Field2", "Test2"},
{"Field3", "Test3"}
}
};
await graphClient.Sites["{site-id}"].Lists["{list-id}"].Items[item.Id.ToString()].Fields
.Request()
.UpdateAsync(fieldValueSet);
}
}
我想更新“選擇列”的值,但 UpdateAsync 方法拋出異常並顯示以下消息“代碼:無效請求 - 消息:無效請求”。
與上面的代碼唯一不同的是該字段是一個選擇列,並且允許多個值。
例子:
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var fieldValueSet = new FieldValueSet
{
AdditionalData = new Dictionary<string, object>()
{
{"Field1", "Test1"},
{"Field2", ["Test2-A", "Test2-B", "Test3-C"]}
}
};
await graphClient
.Sites["{site-id}"]
.Lists["{list-id}"]
.Items["{listItem-id}"]
.Fields
.Request()
.UpdateAsync(fieldValueSet);
任何的想法?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.