【发布时间】:2010-03-10 21:56:21
【问题描述】:
我的 SharePoint 列表有一个允许多个查找值的列。我的 C# 控件(在 Web 部件内)允许用户从列表框中进行多项选择。我将这些值拆分为一个数组 - 每个数组成员都是需要在同一 SPListItem 列中更新的选定值。
我知道选择是从列表框中正确传递的 - 我只需要将这组值添加到 SPListItem 的同一列中。
我哪里出错了?
SPFieldLookupValueCollection MyCollection = new SPFieldLookupValueCollection();
for (int i = 0; i < MyArrayOfSelections.Length; i++)
{
if (MyLookupList["LookupColumn"].ToString() == MyArrayOfSelections[i].ToString())
{
MyID = int.Parse(MyLookupList[i]["ID"].ToString());
SPFieldLookupValue thisSelection = new SPFieldLookupValue(MyID,MyArrayOfSelections[i].ToString());
MySubCollection.Add(thisSelection);
}
}
ListIWantToUpdate["ColumnWithMultipleLookupSelections"] = SubCollection;
ListIWantToUpdate.Update();
site.Update();
}
【问题讨论】:
-
上面的代码实际上包含在另一个 for 循环中,该循环遍历查找列表中的 SPListItemCollection
-
呸!我发现了问题——这也是一个愚蠢的问题。在外部 for 循环中,i++...在内部 for 循环 j++ 上。当我遍历列表框中的选择数组时 - 我使用了“i”索引而不是“j”索引。哦!我很欣赏你的网站——通常当我遇到障碍时......我可以在这里找到答案。谢谢。
标签: c# sharepoint splistitem spfieldcollection