获得第一和第一Sharepoint列表中的最后一个ListItem

时间:2012-01-04 12:03:04

标签: c# sharepoint sharepoint-2010

pageLoad事件上,我想转到两个不同的SharePoint列表,从一个列表中获取第一个ListItem,在另一个列表中获取最后一个ListItem。我不知道任何ListItem ID,所以我想这需要通过列表索引来完成 - 只是不知道如何实现它。在列表上有一个句柄可以有人建议(使用c#)获得上述场景的第一个和最后一个项目的最佳方法吗?

2 个答案:

答案 0 :(得分:14)

条件“第一项”和“最后一项”不是很清楚。假设您要检索第一个和最新的已创建项。需要注意的重要一点是,通过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指出的代码进行更改。

答案 1 :(得分:2)

您可以尝试此操作以获取最后一个itemID

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

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

问候!