gpt4 book ai didi

sharepoint - 值不在预期范围内 - SharePoint 查找字段异常

转载 作者:行者123 更新时间:2023-12-04 19:36:31 25 4
gpt4 key购买 nike

我正在尝试将数据从一个列表复制到另一个列表(两个列表都在不同的站点上)以及查找列。但是,我收到一个查找字段的错误:

Value does not fall within the expected range



代码有效并且数据被复制用于其他非查找字段。我尝试了所有可能的方法,包括增加 ListView 查找阈值和所有可能的代码方式,但仍然在 ExecuteQuery() 处出现错误.

以下是我的查找字段代码:
if (field is FieldLookup && field.InternalName == "Country")
{
var CountryLookup = (item.FieldValues["Country"] as FieldLookupValue).LookupValue.ToString();
var CountryLookupId = (item.FieldValues["Country"] as FieldLookupValue).LookupId.ToString();
FieldLookupValue flvRDS = new FieldLookupValue();
flvRDS.LookupId = int.Parse(CountryLookupId);
itemToCreate["Country"] = flvRDS;
itemToCreate.Update();
destContext.ExecuteQuery();
}

非常感谢您的帮助。

最佳答案

我假设 item是您尝试在目标列表中创建的新 ListItem。

但实际上您从未从 field 中读取任何值这里!所以基本上,您正在尝试使用 item["Country"].LookupId 设置新的 FieldLookup.LookupId,此时逻辑上应该为空。

这是我用来从值中检索查找字段 ListItem 的方法,请随意修改它以满足您的需要,因为我不知道您要如何检索它(SPList 是 Microsoft.SharePoint.Client.List 的别名)。

private ListItem GetLookupItem(FieldLookup lookupField, string lookupValue)
{
string mappingField = lookupField.LookupField;

Microsoft.SharePoint.Client.List lookupList = Context.Web.Lists.GetById(new Guid(lookupField.LookupList));

Context.Load(lookupList);
Context.ExecuteQuery();

ListItemCollection libListItems = lookupList.GetItems(CamlQuery.CreateAllItemsQuery());
Context.Load(libListItems, items => items.Include(
itemlookup => itemlookup.Id,
itemlookup => itemlookup[mappingField]));
Context.ExecuteQuery();

foreach (ListItem mappedItem in libListItems)
{
object mappedField = mappedItem[mappingField];
if (mappedField != null && mappedField.ToString().Equals(lookupValue))
return mappedItem;
}

return null;
}

现在你有了对应的 ListItem,你可以设置你的 item.LookupId及其 ID:
if (field is FieldLookup && field.InternalName == "Country")
{
FieldLookupValue flvRDS = new FieldLookupValue();
flvRDS.LookupId = GetLookupItem(field as FieldLookup, "France").Id; // here, dunno how you get your country's name
itemToCreate["Country"] = flvRDS;
itemToCreate.Update();
destContext.ExecuteQuery();
}

如果您想要更适合您的特定问题的答案,请随意添加更多以前的代码。

关于sharepoint - 值不在预期范围内 - SharePoint 查找字段异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42134364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com