CAML-запрос к списку SharePoint, упорядочение по полю поиска - PullRequest
7 голосов
/ 07 февраля 2011

Я пытаюсь получить список из SharePoint через CAML и хочу, чтобы возвращаемый список был упорядочен по определенному полю.Поле является полем поиска.Запрос возвращается неупорядоченным, когда я устанавливаю OrderBy как поле поиска, если я использую текстовое поле, это нормально.

Построитель запросов CAML U2U будет возвращать этот заказ в порядке, когда я создаю его в редакторе.

Вот фрагмент кода того, как я строю и выполняю запрос:

String baseQuery = "<Query><Where><Eq><FieldRef Name='paApproved' /><Value Type='Boolean'>1</Value></Eq></Where><OrderBy><FieldRef Name='paState' Ascending='True' LookupValue='TRUE' /></OrderBy></Query>";

qStates.Query = baseQuery;

SPListItemCollection byState = web.Lists["paUpdates"].GetItems(qStates);

Остальное - цикл for, который анализирует коллекцию и отображает ее.Я могу опубликовать это при необходимости.

Вот SOAP-вызов, сделанный инструментом запросов CAML, я удалил его из потока HTTP с помощью wireshark.работает, мой код нет.Кто-нибудь знает почему?Заранее спасибо.

Отредактировано, чтобы отразить код, который я на самом деле тестирую.У меня был код с неверными значениями.

Ответы [ 2 ]

7 голосов
/ 07 февраля 2011

Пример кода, который вы разместили, не соответствует запросу wireshark:

<Query><Where><Eq><FieldRef Name='paApproved' /><Value Type='Boolean'>1</Value></Eq></Where><OrderBy><FieldRef Name='Title' Ascending='True' /></OrderBy></Query>

Должно быть:

<Where><Eq><FieldRef Name="paApproved" /><Value Type="Boolean">1</Value></Eq></Where><OrderBy><FieldRef Name="paState" Ascending="False" /></OrderBy>

Youне нужны элементы <Query></Query> ( см. здесь пример ).

1 голос
/ 07 февраля 2011

Я пытался воспроизвести проблему. Ваш запрос действительно не сортируется правильно. Я сделал два изменения, чтобы заставить его работать - удалил элемент Query и удалил LookupValue = 'TRUE' (нет атрибута с таким именем в схеме элемента). После этого все кажется в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...