c# - saber - Obtener el primer y último ListItem en la lista Sharepoint
lista en asp net (2)
En un evento pageLoad
, quiero ir a dos listas de SharePoint diferentes y obtener el primer ListItem de una lista y el último ListItem en otra. No conozco ninguno de los ID de ListItem, así que supongo que esto debe hacerse a través del índice de la lista, pero no estoy seguro de cómo implementarlo. Después de haber manejado la Lista, ¿alguien puede aconsejar (usando c #) la mejor manera de obtener los primeros y últimos ítems para el escenario descrito anteriormente?
La condición "primer elemento" y "último elemento" no es muy clara. Suponiendo que desea recuperar el primer y el último elemento creado . Es importante tener en cuenta que recuperar elementos a través del índice de SPListItemCollection
puede ser lento para listas grandes, ya que al acceder a SPList.Items
devuelven todos los elementos de la lista. Es por eso que sugiero usar una consulta 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();
Para el "último artículo", debe invertir el orden:
<OrderBy><FieldRef Name=''ID'' Ascending=''FALSE'' /></OrderBy>
Si desea obtener el último y el primer artículo basándose en otra condición, solo tiene que cambiar el orden por campo.
Actualizar:
Aún mejor sería ordenar por el campo ID
.Con eso podrías lograr el mismo resultado. No solo mejor, el campo creado podría haber sido cambiado a través del código como lo señala @Kobi.
Puede intentar esto para obtener el último ID de elemento
SPWeb web = SPContext.Current.Web;
SPList List = web.Lists[ListName];
int itemId = List.Items[List.ItemCount - 1].ID;
¡Saludos!