2010-06-12 5 views
1

Sharepoint 2010 개체 모델을 사용하고 있습니다. 맞춤 목록의 콘텐츠를 검색하려고합니다. 선택 필드를 검색하려고 할 때를 제외하고는 모두 잘 작동합니다.Sharepoint 2010 클라이언트 개체 모델에서 선택 필드를 읽는 방법

내가 선택 필드를 검색 할 때, 내가 PropertyOrFieldNotInitializedException 예외를 가지고

... 여기

내가 사용하고 코드는 다음과 같습니다

  ClientContext clientContext = new ClientContext("https://mysite"); 
      clientContext.FormsAuthenticationLoginInfo = new FormsAuthenticationLoginInfo("aaa", bbb"); 
      clientContext.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication; 

      List list = clientContext.Web.Lists.GetByTitle("mylist"); 
      CamlQuery camlQuery = new CamlQuery(); 
      camlQuery.ViewXml = "<View/>"; 

      ListItemCollection listItems = list.GetItems(camlQuery); 
      clientContext.Load(listItems); 
      clientContext.ExecuteQuery(); 

      foreach (ListItem listItem in listItems) 
      { 

       listBoxControl1.Items.Add(listItem["Assigned_x0020_Company"]); 

      } 

당신이 도움을 주셔서 감사합니다! 당신이 코드에서 ChoiceField을 읽을 때 에릭

답변

0

는, 그것은 선택의 선택의 문자열 배열을 반환합니다. 예를 들어 열을 생성 할 때 열의 선택 상자에 입력 한 경우 : "회사 1", "회사 2", "회사 3", 사용자가 옵션 1 & 2를 선택한 경우 코드에 반환 된 배열에 "회사 1 "및"회사 2 "우선은이 아래에 코드를 변경해야합니다

  foreach (ListItem listItem in listItems) 
     { 
      string[] values = (string[])listItem["Assigned_x0020_Company"]; 
      foreach(string s in values) 
      { 
       listBoxControl1.Items.Add(s); 
      } 

     } 
2
var list = clientContext.Web.Lists.GetByTitle(listName); 
clientContext.ExecuteQuery(); 

clientContext.Load(list.Fields, fields => fields.Include(field => field.Title)); 
clientContext.ExecuteQuery(); 

foreach (var field in list.Fields) 
{ 
    if (field.Title == "YourChoiceFieldName") 
    { 
     clientContext.Load(field); 
     clientContext.ExecuteQuery(); 
     return ((FieldChoice) field).Choices; 
    } 
} 
+0

'microsoft.sharepoint.client 네임 스페이스'를 사용하여 완벽하게 작동했습니다. – jonathana

0

Shayan는 way.You 간단한 대부분의 다중 선택 선택 열에서 값을 얻을 수있는 답을 제공하고 천재입니다.

관련 문제