我需要使用CSOM SharePoint2013库从FieldLookupValue中检索一些信息。 具体来说,我有一个SPList,我需要填充一个类型为Lookup的Field。有没有办法知道相关列表的名称?我确信这些信息包含在FieldLookupvalue中:如果我使用相关项SharePoint的LookupID创建它的实例,则自动关联列表。事实上,这段代码效果很好:
switch (field.TypeAsString)
{
case "Lookup":
int id = Convert.ToInt32(info);
FieldLookupValue lv = new FieldLookupValue() { LookupId = id };
newItem[field.InternalName] = lv;
break;
default:
// do nothing
break;
}
答案 0 :(得分:3)
FieldLookupValue class不会公开任何获取关联列表的属性,但您可以从Lookup field
中检索关联的列表以下示例演示了如何从Predecessors
列表中检索Tasks
字段的关联列表:
using (var ctx = new ClientContext(webUri))
{
var list = ctx.Web.Lists.GetByTitle("Tasks");
var field = list.Fields.GetByInternalNameOrTitle("Predecessors");
var lookupField = ctx.CastTo<FieldLookup>(field);
ctx.Load(lookupField);
ctx.ExecuteQuery();
var lookupListId = new Guid(lookupField.LookupList); //returns associated list id
//Retrieve associated List
var lookupList = ctx.Web.Lists.GetById(lookupListId);
ctx.Load(lookupList);
ctx.ExecuteQuery();
}