добавить условие в Заказ по в запросе CAML

Я запрашиваю список sharepoint с помощью запроса CAML. Здесь я использую «Порядок по условию» в одном столбце списка. Существует вероятность наличия нулевых значений в столбце заказа, в этом сценарии я хочу упорядочить список, используя другой столбец списка (например, столбец заголовка). Как добавить этот заказ по условию в запрос caml для получения элементов списка sharepoint.

Мой код:

 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>";

person Srikanth    schedule 08.05.2012    source источник


Ответы (1)


В разделе OrderBy может быть несколько полей:

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

Это будет эквивалентно: Order by 'orderBy' Then By 'orderBySecondary'

person Rikard Uppström    schedule 08.05.2012
comment
Мое требование не такое. Если в столбце «упорядочить по» нет значений, мне нужно отсортировать список по столбцу «orderBySecondary». Я не хочу использовать оба столбца в качестве столбцов сортировки. - person Srikanth; 08.05.2012
comment
То есть вы имеете в виду, что для некоторых элементов столбец будет пустым, а для некоторых - нет? В этом случае вам нужно отсортировать его вручную с помощью C #. - person Rikard Uppström; 08.05.2012
comment
Поскольку вы создаете свой CAML в классе C #, вам нужно только выполнить if (orderBy == null), а затем выполнить какой-нибудь волшебный код. Я имею в виду, просто добавьте блок if и все. Строку, в которой вы создаете предложение OrderBy, нужно поместить в этот блок. С другой стороны, получите все предметы, затем выполните некоторую магию linq и готово, но это будет не так эффективно. - person ricardordz; 09.05.2012