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

mer*_*nhs 9 c# sharepoint sharepoint-2010

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

Ste*_*fan 16

条件"第一项"和"最后一项"不是很清楚.假设您要检索第一个和最新创建的项目.需要注意的重要一点是,通过索引检索项目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();
Run Code Online (Sandbox Code Playgroud)

对于"最后一项",您必须撤消订购:

<OrderBy><FieldRef Name='ID' Ascending='FALSE' /></OrderBy>
Run Code Online (Sandbox Code Playgroud)

如果您想根据另一个条件获取最后一个和第一个项目,您只需要按字段更改顺序.

更新:
更好的是按ID现场订购.有了它你就可以达到同样的效果. 不仅更好,创建的字段可以通过@Kobi指出的代码进行更改.