如何从FieldLookupValue Sharepoint 2013 CSOM中检索关联的列表名称

时间:2014-11-18 09:59:51

标签: c# sharepoint sharepoint-2013 csom

我需要使用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;
        }

1 个答案:

答案 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();
}