Durchlaufen einer sharepoint-Liste
Im code, wie kann ich Zugang zu einer Liste e.g "MyList" in sharepoint
dann Durchlaufen Sie diese Liste Elemente und den Wert einer bestimmten Spalte auf dieser Liste e.g der "URL" Spalte?
Sie sind in einer Funktion / Web-Teil, die innerhalb Ihrer Website? Oder sind Sie den Zugriff auf SharePoint über die web-services?
yep, die in einem feature
yep, die in einem feature
InformationsquelleAutor raklos | 2009-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zum abrufen aller Elemente aus einer Liste und Durchlaufen jeweils die beste Lösung wäre wie folgt (unter der Annahme, dass dieser code ausgeführt wird, der als Teil einer feature):
Aber wenn die Liste sehr groß ist, wäre es besser, zu paginieren, die durch die Elemente der Liste:
Diese basiert auf dem Microsoft Best Practices für SharePoint.
InformationsquelleAutor MagicAndi
Vom in diesem blog-post:
Den richtigen Weg, es zu tun ist, speichern Sie die Items-Eigenschaft Rückgabewert in einer SPListItemCollection variable. Mit diesem wird die Datenbank nur einmal abgefragt und anschließend werden wir die Iteration über die Ergebnismenge gespeichert ist, in das collection-Objekt. Hier ist das geänderte Beispiel-code:
InformationsquelleAutor Greg Hurlman
Kann man auch iterieren die Elemente, die direkt, und wenn Sie eine URL ein, die Sie wahrscheinlich verwenden möchten die
SPFieldUrlValue
Klasse, so dass Sie nicht zu tun haben mit der Art, wie SharePoint speichert URLs:Gibt es viele solcher
SPField*
helper Klassen, und Sie sind sehr nützlich, speziell wenn Sie mehrere Werte haben.Edit:
Aus irgendeinem Grund, einige Leute glauben, dass dieser Weg langsamer ist, auf der Grundlage der Beweise in dem blog-Beitrag von Greg ' s post (bekam sogar nach unten gewählt). Dies jedoch hat nichts zu tun mit meiner Antwort:
foreach
Schleife erzeugt einen Iterator, also sollte es nicht auf die Datenbank zugreifen, 99 mal (auf der post, die Sie verwendet einefor
Schleife für den Zugriff auf die ersten 100 Elemente).Ok, das ist definitiv der falsche Weg, um die Iteration eines Sharepoint-Liste, wie bereits in der Microsoft-best-practices - siehe msdn.microsoft.com/en-us/library/.... Lesen Sie diesen Artikel für weitere Informationen: lots-with-sharepoint.blogspot.com/2009/01/... " -1 " für eine schlechte Antwort.
Nun, das ist besser, zumindest Sie downvote für einen guten Grund. In der Tat, Sie können hinzufügen, dass so eine Antwort, seit der OP hat Fragen, für eine bestimmte Spalte.
Ich bin immer noch nicht überzeugt, dass dies NICHT die richtige Antwort. Verlinkten Artikel nicht wirklich was, es sei denn, ich bin fehlt etwas.
InformationsquelleAutor Kobi
wenn Sie in einer Funktion, die Funktion aktiviert zu einem bestimmten Umfang (z.B. Website, Web, Webanwendung oder Serverfarm).
Wenn Sie möchten, um eine Liste von der Funktion, verwenden Sie die SPFeatureReceiver Klasse zu binden, einen Ereignis-Empfänger Ihre Funktion. Dann, in dieser Klasse gibt es überschreibt, wenn die Funktion aktiviert Ereignis ausgelöst wird. Vorrang erhält einen parameter vom Typ SPFeatureReceiverProperties.
aus, dass die parameter, die Sie verwenden können, Holen Sie sich in eine Website:
wie das Durchlaufen dieser Liste, siehe die anderen Antworten
InformationsquelleAutor Colin
Unten ist die beste option, um die Iteration
InformationsquelleAutor user1282548
Folgenden code zum löschen aller bulk-Liste, die Elemente, und hier können Sie überspringen die Letzte 150 Einträge zu löschen.
Durchlaufen SPListItemCollection und sehr schnelle Zeit wie 3000 Elemente löschen in 2 Münzstätten.
InformationsquelleAutor Nagaraju Pattem
Wie schon andere gesagt haben, sollte man nicht die Iteration der Items-Auflistung direkt (vor allem bei großen Sammlungen). Heres ein alternaltive:
//wenn Sie die ganze Sammlung. Ansonsten verwenden Sie SPQuery auf der Liste
Dann können Sie tun viele Dinge. Wenn Sie brauchen, um einen Scheck, um nur einige der Elemente, ex:
oder verwenden Sie die SpQuery, um Ihre Spalte in der Abfrage, wie:
InformationsquelleAutor Johan Leino
Wenn Sie in einer x86-Umgebung, die ich vor kurzem entdeckt eine schrecklich Lesen-nur so kommt man an die Daten mit T-SQL/OLEDB...
http://www.connectionstrings.com/sharepoint
InformationsquelleAutor Josh
BTW
Bei der Verwendung von OPENROWSET...
IMEX=2 für Lesen/Schreiben. IMEX=1 ist ReadOnly.
Liste = [Name] funktioniert für mich, anstatt dass die Liste verwenden={GUID}.
InformationsquelleAutor
Ich weiß, diese Frage wurde gebeten, eine sehr lange Zeit her, aber ich hoffe, dass ich in der Lage bin, jemandem zu helfen, aus jetzt 🙂
Dies ist, wie ich in der Lage war, dies zu erreichen,
InformationsquelleAutor IE5Master