Was ist der beste Weg, um abzurufen deutliche / eindeutige Werte mit SPQuery?
Ich habe eine Liste, die wie folgt aussieht:
Movie Year
----- ----
Fight Club 1999
The Matrix 1999
Pulp Fiction 1994
Mit CAML und das SPQuery-Objekt, die ich brauche, um eine eindeutige Liste von Elementen aus dem Jahr Spalte, die füllen ein drop-down-control.
Suchen, um dort nicht erscheinen zu sein ein Weg, dies zu tun innerhalb von CAML-query. Ich Frage mich, wie Menschen gegangen sind, über das erreichen?
InformationsquelleAutor der Frage Alex Angas | 2009-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen anderen Weg, dies zu tun ist die Verwendung von DataView.ToTable-Methode - der erste parameter ist derjenige, der macht die Liste deutlich.
Können Sie dann weiter mit dem DataTable tbl.
InformationsquelleAutor der Antwort user4531
Wenn Sie wollen, zu binden, die eindeutige Ergebnisse zu einer Datenquelle, beispielsweise einem Repeater und behalten die aktuellen Artikel über das ItemDataBound-Event' e.Element.DataItem-Methode der DataTable-Methode ist nicht zur Arbeit gehen. Stattdessen, und außerdem auch, wenn die nicht wollen, binden Sie es zu einer Datenquelle, Sie können auch die Linq to definieren Sie die unterschiedlichen Werte.
Denken Sie daran, dass, da es keine CAML-Unterstützung für getrennte Abfragen, die jeweils Probe auf dieser Seite werden ALLE Elemente abzurufen, aus der sich SPList. Das mag in Ordnung sein für kleinere Listen, aber auch Listen mit tausenden von listitems, das wird ernst werden, ein performance-killer. Leider gibt es keine mehr optimiert, so erreichen die gleichen.
InformationsquelleAutor der Antwort Koen Zomers
Gibt es keine klare in CAML-füllen Sie Ihre dropdown-versuchen Sie es mit etwas wie:
Davon ausgegangen, dass die dropdown-heißt ddlYear.
InformationsquelleAutor der Antwort Charlie
Können Sie wechseln Sie von SPQuery zu SPSiteDataQuery? Sie sollten in der Lage sein, ohne Probleme.
Danach können Sie standard ado.net Verhalten:
InformationsquelleAutor der Antwort Tudor Olariu
Ich überlegte, dieses problem heute früher, und die beste Lösung, die ich denken konnte, verwendet den folgenden Algorithmus (sorry, kein code im moment):
Dies reduziert die Gesamtanzahl der Elemente, die zurückgegeben deutlich, bei der die Kosten der Herstellung mehr Abfragen.
Es nicht viel Angelegenheit, wenn X ist völlig richtig, aber die Zufälligkeit ist sehr wichtig. Im wesentlichen die erste Abfrage ist wahrscheinlich die am häufigsten verwendeten Optionen, also die zweite Abfrage ausgeschlossen wird, und diese ist wahrscheinlich die am häufigsten verwendeten Optionen und so weiter durch die Iterationen.
Im besten Fall, die erste Abfrage schließt alle Optionen, dann die zweite Abfrage wird leer sein. (X abgerufenen Elemente insgesamt, über 2 Abfragen)
Im schlimmsten Fall (z.B. die Abfrage ist sortiert, die Optionen, die wir suchen, und es gibt mehr als X Elemente mit jeder option) wir machen so viele Anfragen, da gibt es Möglichkeiten. Rückkehr etwa X * X die Elemente in der Summe.
InformationsquelleAutor der Antwort Stu Pegg
Nach kommen über post nach dem post darüber, wie das war unmöglich, ich habe endlich einen Weg gefunden. Dies wurde getestet, in SharePoint Online. Hier ist eine Funktion, die Ihnen alle eindeutigen Werte für eine Spalte. Es erfordert nur, die Sie übergeben Sie in der Liste Id, Anzeigen-Id, interne Liste mit Namen, und eine callback-Funktion.
}
InformationsquelleAutor der Antwort Anthony Bandoly