Получить первый и последний ListItem в списке Sharepoint - PullRequest
8 голосов
/ 04 января 2012

В случае pageLoad я хочу перейти к двум различным спискам SharePoint и получить первый ListItem из одного списка и последний ListItem в другом. Я не знаю ни одного идентификатора ListItem, поэтому думаю, что это нужно сделать с помощью индекса списка - просто не знаю, как это реализовать. Получив дескриптор в списке, кто-то может посоветовать (используя c #) лучший способ получить первый и последний элементы для сценария, описанного выше?

Ответы [ 2 ]

14 голосов
/ 04 января 2012

Условия "первый элемент" и "последний элемент" не очень понятны. Предполагая, что вы хотите получить первый и последний созданный элемент. Важно отметить, что получение элементов по индексу SPListItemCollection может быть медленным для больших списков, так как доступ к SPList.Items возвращает все элементы списка. Вот почему я предлагаю использовать 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();

Для «последнего элемента» необходимо изменить порядок:

<OrderBy><FieldRef Name='ID' Ascending='FALSE' /></OrderBy>

Если вы хотите получить последний и первый элемент на основе другого условия, вам просто нужно изменить порядок по полю.

Обновление:
Еще лучше было бы заказать по полю ID. С этим вы можете достичь того же результата. Не только лучше, созданное поле можно было изменить с помощью кода, на что указывает @ Kobi.

2 голосов
/ 23 августа 2012

Вы можете попробовать это, чтобы получить последний itemID

SPWeb web = SPContext.Current.Web;
            SPList List = web.Lists[ListName];

            int itemId = List.Items[List.ItemCount - 1].ID;

С уважением!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...