Запрос поля выбора в Sharepoint с помощью rest - PullRequest
14 голосов
/ 21 марта 2011

Я получил список в Sharepoint 2010 с колонкой выбора. Варианты выбора - флажки.

Как запросить столбец выбора, используя остальные API?

Я пытался использовать

http://sp2010/_vti_bin/listdata.svc/mylist?$filter=myChoicesColumn/xxx eq something 

и тогда я получу

Нет свойства 'xxx' в типе «System.Collections.Generic.IEnumerable`1 [[Microsoft.SharePoint.Linq.DataServiceEntity, Microsoft.SharePoint.Linq, Версия = 14.0.0.0, Культура = нейтральная, PublicKeyToken = 71e9bce111e9429c]] 'в позиция 6.

Какое свойство я должен использовать?

Ответы [ 7 ]

6 голосов
/ 13 июня 2013

Ни один из этих ответов не будет работать для полей SP, которые имеют тип multiselect (т. Е. Поля, представленные в виде флажков).

Если вы попробуете следующий фильтр для поля выбора множественной выборки под названием «Группировка», например:

$filter=Grouping/Value eq 'My Value'

Вы получите сообщение об ошибке:

{
    "error": {
        "code": "",
        "message": {
            "lang": "en-US",
            "value": "No property 'Value' exists in type 'System.Collections.Generic.IEnumerable`1[[Microsoft.SharePoint.Linq.DataServiceEntity, Microsoft.SharePoint.Linq, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]]' at position 9."
        }
    }
}
}

Может быть, Value не требуется?Вы все еще получаете ошибку.В SP 2013 в документации MSDN говорится, что запрос выбора из нескольких вариантов невозможен.Поэтому я могу только предположить, что то же самое верно и для API REST 2010, который вряд ли документирован вообще.

Запросы для многозначных полей поиска и пользователей ПосколькуПоля поиска значений возвращаются в виде строки с несколькими значениями, нет возможности запросить их (например, эквивалент элемента Include или NotInclude не поддерживается).

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

2 голосов
/ 27 января 2016

Я успешно попробовал это на O365, но то же самое должно работать и в OnPrem.

~SITE_URL/_api/web/lists/getbytitle('LISTNAME')/items?$filter=(FieldInternalName eq 'CHOICE1') or (FieldInternalName eq 'CHOICE2')

Используйте «и» вместо «или» в соответствии с вашими потребностями.

2 голосов
/ 13 мая 2011

Вам нужны одинарные кавычки вокруг значения в фильтре.

$filter=myChoicesColumn eq 'something'
1 голос
/ 17 мая 2017

Для тех, кто все еще борется с этим в SharePoint 2010 (который использует конечную точку /_vti_bin/listdata.svc, а не в SharePoint 2013 и выше /_api/web), я смог успешно фильтровать по одиночному - выбор поля выбора с использованием ChoiceFieldNameValue в параметре $filter вместо ChoiceFieldName/Value.

Обратите внимание на отсутствие косой черты между именем поля и словом Value. Как ни странно, для параметра $select по-прежнему требуется /Value, как и ожидалось.

Мой успешный URL-адрес конечной точки выглядел так:

_vti_bin/listdata.svc/ListName?$filter=(ChoiceFieldNameValue eq 'targettext')&$select=ChoiceFieldName/Value&$expand=ChoiceFieldName

Замените ListName именем вашего списка, а ChoiceFieldName - отображаемым именем вашего поля, в каждом случае с удаленными пробелами и, возможно, числовым суффиксом, чтобы избежать коллизий имен, и замените 'targettext' значением против которого вы хотите фильтровать.

1 голос
/ 03 июля 2013

Я только что получил это для моих требований со следующим.

http://sp2010/_vti_bin/listdata.svc/mylist?$filter=myChoicesColumn/Value%20eq'something'
1 голос
/ 16 ноября 2011

Не уверен, что вы уже решили это. Тем не менее:

Предположим, у вас есть список товаров с полем поиска для страны. И вы хотите отфильтровать результат по продуктам из Франции, и вы не хотите фильтровать по идентификатору страны, тогда вы можете отфильтровать по свойству $ expand так:

http://sharepoint/_vti_bin/ListData.svc/Product?$expand=Country&$filter=Country/Title eq 'France'

Я расширил вызов REST списком стран и затем установил фильтр для страны / заголовка на «Франция»

0 голосов
/ 05 мая 2011

Просто выстрел:

Вы пробовали

http://sp2010/_vti_bin/listdata.svc/mylist?$filter=myChoicesColumn contains something 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...