2016-10-20 16 views
-1

職場では、SharePoint 2010から2013に移動しなければならず、リスト項目を取得するためのコードはもはや機能しません。ここでSP 2010年の私のコードは次のとおりです。SharePoint 2013からリストアイテムを取得する方法

com.mycompany.intranet.Lists listService = new com.mycompany.intranet.Lists(); 

listService.Credentials = System.Net.CredentialCache.DefaultCredentials; 

listService.Url = "url"; 

System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); 

string listName = cbxMailDistributionList.SelectedValue.ToString(); 
string viewName = ""; 
string rowLimit = "0"; 

System.Xml.XmlElement query = xmlDoc.CreateElement("Query"); 
System.Xml.XmlElement viewFields = xmlDoc.CreateElement("ViewFields"); 
System.Xml.XmlElement queryOptions = xmlDoc.CreateElement("QueryOptions"); 

viewFields.InnerXml = "<FieldRef Name='Title' />"; 

System.Xml.XmlNode nodeListItems = 
listService.GetListItems(listName, viewName, query, viewFields, rowLimit, queryOptions, null); 

xmlDoc.LoadXml(nodeListItems.InnerXml); 

xlNodeList rows = xmlDoc.GetElementsByTagName("z:row"); 

List<string> recipients = new List<string>(); 

foreach (XmlNode attribute in rows) 
{ 
    if(attribute.Attributes["ows_Title"].Value == null){} 
    else { 
    if (recipients.Contains(attribute.Attributes["ows_Title"].Value)){} 
    else { 
     recipients.Add(attribute.Attributes["ows_Title"].Value); 
     } 
     } 
} 

recipients.Sort(); 
distributionList = recipients; 

あなたはそれが再びのSharePoint 2013リストでの作業を取得するために私を助けてくださいことはできますか?

URLは既に更新されましたが、私は次のエラーを取得:https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=DE-DE&k=k(EHNullReference);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.0);k(DevLang-csharp)&rd=true

をしかし、リストが空のフィールドがありません。

listName 

は、リスト要素のIDです。

助けてください。

ありがとうございます!

答えて

0

最後に、このコードで再び動作します、新日

  List<string> recipients = new List<string>(); 

      string siteURL = @"myurl/"; 

      ClientContext cc = new ClientContext(siteURL); 
      cc.Credentials = System.Net.CredentialCache.DefaultCredentials; 

      Web web = cc.Web; 

      List list = web.Lists.GetById(new Guid(cbxMailDistributionList.SelectedValue.ToString())); 

      CamlQuery caml = new CamlQuery(); 

      ListItemCollection items = list.GetItems(caml); 

      cc.Load<List>(list); 
      cc.Load<ListItemCollection>(items); 
      cc.ExecuteQuery(); 

      foreach (Microsoft.SharePoint.Client.ListItem item in items) 
      { 
       if(item.FieldValues["Title"] == null) { } 
       else 
       { 
        if (recipients.Contains(item.FieldValues["Title"].ToString())) { } 
        else 
        { 
         recipients.Add(item.FieldValues["Title"].ToString()); 
        } 
       } 
      } 

      recipients.Sort(); 
      distributionList = recipients; 

     } 
     else 
     { 
      distributionList = null; 
     } 

新しい運。この質問を早めに投稿して申し訳ありません。私は夜にそれで眠っていたはずです。 ;)

BR

関連する問題