2014-11-18 3 views
1

Мне нужно получить некоторую информацию из поля FieldLookupValue, используя библиотеку CSOM SharePoint2013. В частности, у меня есть SPList, и мне нужно заполнить поле, которое является Lookup. Есть ли способ узнать имя связанного списка? Я точно знаю, что эта информация содержится в поле FieldLookupvalue: если я создаю экземпляр с помощью LookupID связанного элемента, SharePoint автоматически связывает списки. Infact этот код работает хорошо:Как получить связанное имя списка из FieldLookupValue Sharepoint 2013 CSOM

 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; 
     } 

ответ

2

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(); 
} 
+1

Я собираюсь upvote вас, так как вы посадили меня именно там, где мне нужно быть. Однако в моей среде lookupField.LookupList представлял собой строку, в частности название списка. – DaleyKD