我的SharePoint列表包含一个允许多个查找值的列。我的C#控件(在webpart中)允许用户从列表框中进行多项选择。我将这些值拆分为一个数组 - 每个数组成员都是一个需要在同一个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();
}
答案 0 :(得分:1)
代码示例的最后几行令人困惑(可能只是变量命名)。如果您只是更新数据,则永远不需要更新SPList
对象(这需要更新特定列表上的“管理列表”权限,也不需要更新SPSite
ojbect(需要)你是网站管理员或所有者。所以,这个代码不会成功地为普通用户运行。