将多个查找值插入/更新到SPListItem

时间:2010-03-10 21:56:21

标签: c# sharepoint splistitem spfieldcollection

我的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();
}

1 个答案:

答案 0 :(得分:1)

代码示例的最后几行令人困惑(可能只是变量命名)。如果您只是更新数据,则永远不需要更新SPList对象(这需要更新特定列表上的“管理列表”权限,也不需要更新SPSite ojbect(需要)你是网站管理员或所有者。所以,这个代码不会成功地为普通用户运行。