Chcę zdarzenie pageLoad
przejść do dwóch różnych list SharePoint i uzyskać pierwszy ListItem z jednej listy i ostatni ListItem w innym. Nie znam żadnego identyfikatora ListItem, więc myślę, że należy to zrobić za pomocą indeksu list - tylko nie wiem, jak to zaimplementować. Posiadając uchwyt na liście, czy ktoś może doradzić (używając C#) najlepszy sposób na zdobycie pierwszego i ostatniego elementu scenariusza opisanego powyżej?Pierwsze i ostatnie ListItem w liście Sharepoint
Odpowiedz
Warunek "pierwszy element" i "ostatni element" nie jest zbyt jasny. Zakładając, że chcesz odzyskać pierwszy i najnowszy element utworzony. Ważne jest, aby pamiętać, że pobieranie pozycji za pośrednictwem indeksu SPListItemCollection
może być powolne w przypadku dużych list, ponieważ dostęp do SPList.Items
powoduje zwrócenie wszystkich elementów listy. Dlatego proponuję przy użyciu kwerendy CAML:
SPList list = // some list;
SPQuery query = new SPQuery();
query.RowLimit = 1;
query.Query = "<OrderBy><FieldRef Name='ID' /></OrderBy>";
return list.GetItems(query).Cast<SPListItem>().FirstOrDefault();
Dla „ostatniej pozycji” trzeba odwrócić kolejność:
<OrderBy><FieldRef Name='ID' Ascending='FALSE' /></OrderBy>
Jeśli chcesz dostać ostatni i pierwszy element na podstawie innego warunkiem, że musisz zmienić kolejność według pól.
Aktualizacja:
Jeszcze lepiej byłoby zamówić przez pole Nie tylko lepiej, utworzone pole mogło zostać zmienione za pomocą kodu wskazanego przez @Kobi.ID
. Dzięki temu możesz osiągnąć ten sam rezultat.
Można spróbować dostać ostatnią ItemID
SPWeb web = SPContext.Current.Web;
SPList List = web.Lists[ListName];
int itemId = List.Items[List.ItemCount - 1].ID;
Pozdrowienia!
jeśli usunęliśmy dwa przedmioty, to nie działa – TinTin
To zadziałało dla mnie świetnie. Musiałem wykonać pewne operacje na posortowanym pakiecie SPListCollection i potrzebowałem wartości z ostatniego elementu, zanim przejrzałem je wszystkie. Pozwoliło mi to zrobić bez pisania dodatkowej kwerendy CAML. Dzięki! – Chronozoa
Jak o usuniętych identyfikatorach przedmiotów ??! –
Bardzo ładne. Polecam również użycie identyfikatora, "stworzoną" datę można ustawić za pomocą kodu. Ponadto, jeśli listy są małe, nie jestem pewien, czy zawracam sobie głowę zapytaniem. – Kobi
@Kobi, to prawda. Zmienię mój przykład na ID ... thx. – Stefan