我可以在开始循环列表项之前对Sharepoint列表进行排序吗?

时间:2011-11-08 07:08:55

标签: c# sharepoint

我是否可以按日期或创建者对共享点列表进行排序然后我开始遍历它以检索数据?

此外,在将项目列表组合在一起后,是否可以进行计数。例如,我将由创建者对项目进行分组,然后检查这些项目中有多少。

我想我在这里问了一个以上的问题,请让我知道我是否应该提出另一个问题。

2 个答案:

答案 0 :(得分:2)

您可以使用CAML,例如

OrderByGroupBy

SPList list = ...; //your list;
var query = new SPQuery();
query.Query = "<OrderBy> <FieldRef Name="Your field"/> </OrderBy>" 
//or
query.Query = "<GroupBy> <FieldRef Name="Your field"/> </GroupBy>"
var items = list.GetItems(query);
foreach(var item in items)
{
  //do your work
}

但是对于分组项目的计数,没有直接的OOB方式。当您从查询中获取项目时,您可以从项目集合中获取它的数量。

答案 1 :(得分:1)

使用 LINQ to SharePoint 时,所有这些都是可能的。

来自Using LINQ to SharePoint的示例:

// Get DataContext from page context
DataContext data = new DataContext(SPContext.Current.Web.Url);

// Get the SharePoint list
EntityList<Customer> Customers = data.GetList<Customer>("Customers");

// Query for customers from London
var londonCustomers = from customer in Customers
                      where customer.City == "London"
                      select customer;

foreach (var londonCust in londonCustomers)
{
    Console.Writeline("id = {0}, City = {1}", londonCust.CustomerId, londonCust.City);
}