2012-05-08 20 views
1

CAMLクエリを使用して共有リストを検索しています。ここでは、1つのリスト列で条件ごとにOrderを使用しています。このシナリオでは、別のリスト列(例:タイトル列)を使用してリストを並べ替える必要があります。このリストをcamlクエリの条件で追加して、共有リストの項目を取得する方法。CAMLクエリで条件を追加します。

私のコードは次のとおりです。

query.ViewXml = "<View><Query>"; 
query.ViewXml += "<OrderBy><FieldRef Name='" + orderBy + "'/></OrderBy>"; 

query.ViewXml += "<Where><Eq><FieldRef Name='" + fieldRef + "'/><Value Type = '" + type + "'>" + value + "</Value></Eq></Where>"; 
      query.ViewXml += "</Query></View>"; 

答えて

1

あなたは[並べ替えセクションで複数のフィールドを持つことができます。

"<OrderBy><FieldRef Name='" + orderBy + "'/><FieldRef Name='" + orderBySecondary + "'/></OrderBy>" 

これはと等価になります: 'orderBySecondary'

ことで次に 'ORDERBY' でご注文
+0

私の要件はそうではありません。 'order by'列に値がない場合、 'orderBySecondary'列に基づいてリストをソートする必要があります。私は両方の列を並べ替えの列として使用することをお勧めしません。 – Srikanth

+1

これは、いくつかの項目では列が空になり、一部ではないことを意味します。その場合は、C#を使用して手動でソートする必要があります。 –

+0

CAMLをC#クラスに構築しているので、 "if(orderBy == null)"を実行するだけで、いくつかの魔法のコードを実行する必要があります。つまり、ブロックを追加してそれだけです。 "OrderBy"句を作成している行が、そのブロックに入れる必要がある行です。一方、すべてのアイテムを取得し、いくつかのlinqの魔法を実行して、それはそれほど効率的ではないでしょう。 – ricardordz

関連する問題