2017-01-17 5 views
0

Ich habe eine Liste mit mehr als 5000 Elemente auf Sharepoint Online Site. Bevor die Liste 5000 Artikel erreicht, habe ich den folgenden Ausschnitt zu bekommen alle Elemente verwendet: C# SharePoint kombinieren mehrere ListItemCollection in einem

var camlquery = new CamlQuery(); 
camlquery.ViewXml = @"<View Scope='RecursiveAll'> 
         <ViewFields> 
          <FieldRef Name='OppId' /> 
         </ViewFields> 
         <Query> 
          <QueryOptions> 
           <ViewAttributes Scope='Recursive' /> 
          </QueryOptions> 
         </Query> 
        </View>"; 
ListItemCollection listItems = _currentList.GetItems(camlquery); 
_clientContext.Load(listItems, items => items.Include(item => item["OppId"], item => item.Id)); 
_clientContext.ExecuteQuery(); 

Jetzt habe ich in dieser bösen Situation, wo ich mehr als 5000 Einzelteile habe. Normalerweise ist das kein Problem. Ich habe es vorher in Powershell geschafft, indem ich die Ergebnisse durchblätterte.

In diesem Fall verwende ich Microsoft.SharePoint.Client.ListItemCollection und füge Artikel zur Sammlung mit der Funktion GetItems(camlquery) hinzu. Wenn ich versuche, weitere Elemente von einer anderen Seite hinzuzufügen, scheint es nicht zu funktionieren.

Ich habe versucht, die Elemente durchzulaufen und diese zur ListItemCollection hinzuzufügen. Aber es gibt keine Funktion zum Hinzufügen oder Einfügen verfügbar.

foreach (ListItem myListItem in listItems2) 
{ 
    listItems.Add(myListItem);   
} 

Ich muss eine ListItemCollection mit mehr als 5000 Elemente zurückgeben.

Vielen Dank für

helfen

Antwort

0

ich einen Weg gefunden habe, um alle Einzelteile zu bekommen IList<ListItem> mit um alle Objekte vom Typ ListItem aus der ListItemCollection zu sammeln.

IList<ListItem> listItemsAll = new List<ListItem>(); 
// Loop through pages of list items 
//... Getting all items 

foreach (ListItem myListItem in listItems) 
{ 
    listItemsAll.Add(myListItem); 
} 
// End Loop 
return listItemsAll; 

In diesem Fall kehre ich eine Liste, aber ich nur die Art der Liste benötigt ListItemCollection-IList<ListItem> zu ändern. Alles funktioniert wie erwartet.

0

konvertieren und listItems2 listitems zu Datentabelle und kopieren dann Reihen von datatable1 zu datatable2

foreach (DataRow dr in dataTable1.Rows) { 
    dataTable2.Rows.Add(dr); 

}

Verwandte Themen