2015-12-10 104 views
1
適當的名稱值

我用下面的代碼獲取SharePoint列表中的用戶:獲取,而不是Microsoft.SharePoint.Client.FieldUserValue

private ClientContext clientContext = new ClientContext(siteUrl); 
private SP.List oList = clientContext.Web.Lists.GetByTitle("SharePoint List"); 
private CamlQuery camlQuery = new CamlQuery(); 
private ListItemCollection collListItem = oList.GetItems(camlQuery); 
private ArrayList names = new ArrayList(); 
clientContext.Load(collListItem, items => items.Include(
     item => item["UserNames"])); 
clientContext.ExecuteQuery(); 

foreach (ListItem oListItem in collListItem) 
     { 
      titles.Add(oListItem["UserNames"]); 
     } 

我從另一列檢索數據,也和我得到這些數據就好了。但是當涉及到名稱時,返回值是Microsoft.SharePoint.Client.FieldUserValue

有關如何獲取實際用戶名的建議?

+1

當您使用調試器...你穿上 'titles.Add(oListItem [「用戶名」])斷點;'快表內,看看有什麼屬性,你可以在'oListItem [「UserNames」]中可能有另一個索引位置,如果是的話,那麼你應該做一個for循環,但不知道數據結構是不是真的可以分辨 – MethodMan

回答

5

它應該返回FieldUserValue,您可以從對象中獲取用戶名或ID。這裏有一個簡單的例子:

FieldUserValue user = (FieldUserValue)listItem["Author"]; 
string name = user.LookupValue; 
+0

Lookups,Taxonomy(Managed Metadata)and People Pickers all require在CSOM中投射以獲得正確的值。很高興這有助於! –