如何在CAML查询中进行双重命令?

ome*_*ega 7 c# caml sharepoint-2010

我在visual studio c#中使用camel查询从sharepoint 2010获取列表中的项目.列表项目有两个我想在caml查询中使用的字段.一个是"Section",另一个是"Order By".查询需要以某种方式对项目进行排序.首先,它需要按Section(升序=真)对其进行排序,然后按顺序排序(升序=真)进行二次排序.

例如,结果将是这样的:

<item> <Section> <Order By>
item1  A 1
item2  A 3
item3  B 1
item4  B 2
item5  C 5
item6  C 6
Run Code Online (Sandbox Code Playgroud)

到目前为止我有这个:

        SPQuery query = new SPQuery();
        query.Query = "<Query><OrderBy><FieldRef Name='" + Root_List.Fields.GetField(SECTION_COLUMN).InternalName + "' Ascending='True'/></OrderBy></Query>";
        item_collection = Root_List.GetItems(query);
Run Code Online (Sandbox Code Playgroud)

但是如何应用二级订单?

注意:Section是一个字符串字段,order by是一个数字字段.

小智 13

根据MSDN上的这个页面,您可以在OrderBy元素中包含多个FieldRef:

http://msdn.microsoft.com/en-us/library/ms467378.aspx

给出的例子是:

<OrderBy>
  <FieldRef Name="Newcomers"/>
  <FieldRef Name="Years" Ascending="FALSE"/>
  <FieldRef Name="Location"/>
</OrderBy>
Run Code Online (Sandbox Code Playgroud)


小智 0

尝试创建计算列,将您想要排序的列连接在一起。然后按新的计算列对列表进行排序。

http://msdn.microsoft.com/en-us/library/bb862071(v=office.14).aspx