【问题标题】:How to add a value to a lookup field in sharepoint?如何将值添加到 sharepoint 中的查找字段?
【发布时间】:2012-09-24 07:53:25
【问题描述】:

您好,我在 sharepoint 2007 中有两个列表。 我在列表中有一个查找列,它看起来另一个字段。 我想使用 sharepoint 对象模型将项目添加到第二个列表。 如何设置查找字段值。 (该值已经在另一个列表中)。?

SPListItem Employee = web.Lists["Employee"].Items.Add();
Employee["Name"] = account.Name;
Employee["Department"] = <lookup value must come here>
Employee.Update();                 

【问题讨论】:

标签: c# sharepoint sharepoint-2007 moss


【解决方案1】:

查找字段将包含行 ID 和要显示的列值的组合,以 :# 分隔,在您的情况下可能是 1:#HumanResources12:#Engineering

因此,仅设置 id 来引用查找是不够的,而是需要设置上述字符串。幸运的是,SharePoint 提供的 SPFieldLookupValue 类正是这样做的:

var department = web.Lists["Department"].GetItemById(1);
var employee = web.Lists["Employee"].Items.Add();
employee["Name"] = account.Name;
employee["Department"] = new SPFieldLookupValue(department.ID, department.Title);
employee.Update(); 

【讨论】:

  • 这似乎没有必要。如果我在设置后检查员工[“部门”]的值,它只是设置为“1”。如果我只是做员工[“部门”] =“1”;员工.Update();它工作正常。
  • @xr280xr,呵呵,有意思。 MSDN states “一个查找字段包含表单 ID 中的字符串;#VALUE,其中 ID 是列表项 ID,VALUE 是另一个列表中查找字段的值。”确保按照自己的方式正确引用了另一个列表中的项目?
  • 我的印象是分隔符是;# 而不是:#。我错过了什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-20
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多