2012-05-08 2 views
1

Я запрашиваю список sharepoint, используя запрос CAML. Здесь я использую Order by condition в одном столбце списка. Вероятность наличия нулевых значений в столбце заказа, в этом случае я хочу заказать список, используя другой столбец списка (например: столбец заголовка). Как добавить этот порядок по условию в запрос caml для извлечения элементов списка sharepoint.добавить условие в порядке заказа в CAML Query

Мой код:

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 сечении:

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

Это будет эквивалентно: Сортировать по 'OrderBy' Тогда по 'orderBySecondary'

+0

Мое требование не такое. Если в столбце «по порядку» нет каких-либо значений, я должен отсортировать список на основе столбца «orderBySecondary». Я не хочу использовать оба столбца в качестве сортировочных столбцов. – Srikanth

+1

Значит, вы имеете в виду, что для некоторых элементов столбец будет пустым, а некоторые - нет? В этом случае вам нужно отсортировать его вручную с помощью C#. –

+0

Поскольку вы создаете свой CAML в классе C#, вам нужно всего лишь сделать «if (orderBy == null)», а затем сделать магический код. Я имею в виду, просто добавьте блок if, и это все. Строка, в которой вы создаете предложение «OrderBy», - это тот, который вам нужно поместить в этот блок. С другой стороны, получите все предметы, затем сделайте некоторую магию и сделайте немного, но это будет не так эффективно. – ricardordz