Как вставить значение запроса в качестве параметра в конструкторе SharePoint?

StackOverflow https://stackoverflow.com/questions/353485

Вопрос

Я пытаюсь создать источник данных в SharePoint Designer, который подключается к списку SharePoint через веб-службы XML.Я создал источник данных и подключился к соответствующему списку.Я могу просмотреть все данные с помощью GetListItems и хочу отфильтровать их с помощью параметра запроса.

Параметр запроса принимает XmlNode, и когда я помещаю его в качестве значения, я получаю ошибку:

<Query>
    <Where>
        <Eq>
            <FieldRef Name="Title" />
            <Value Type="Text">Foo</Value>
        </Eq>
    </Where>
</Query>

Конечно, я не ввел ни табуляции, ни новой строки, так как в SharePoint Designer у меня есть только однострочное поле ввода.Я получаю сообщение об ошибке с этим запросом:

Сервер вернул неспецифическую ошибку при попытке получить данные из источника данных.Проверьте формат и содержание вашего запроса и попробуйте еще раз.Если проблема сохраняется, свяжитесь с администратором сервера.

Я просто хочу отфильтровать набор результатов элементов списка, чтобы в поле «Заголовок» было указано «Foo».Можно ли это сделать в SharePoint Designer?


Обновлять:экранирование < и > таким образом также не удается:

&lt;Query&gt;&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name=&quot;Title&quot; /&gt;&lt;Value Type=&quot;Text&quot;&gt;Foo&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;&lt;/Query&gt;

Обновлять:Похоже, это известная проблема с компонентами SoapDataSource и вызовами SOAP.Судя по всему, они перекодируют < и > перед отправкой.Приведенный обходной путь — сохранить источник данных без параметра запроса, а затем добавить его на страницу и создать фильтр в диалоговом окне «Общие задачи просмотра данных».Мне удалось заставить это работать, используя следующую строку фильтра:

[@ows_Title = 'Foo']

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

Я все еще ищу хорошее решение, которое позволило бы мне разместить источник данных с помощью SharePoint Designer.

Это было полезно?

Решение

В SharePoint Designer существует ошибка.Вы не можете передать объект Query в SOAPDataSource таким образом — XML будет перекодирован.Вы ничего не можете сделать, чтобы это исправить, кроме как использовать Visual Studio.

Я сообщу вам, если когда-нибудь появится исправление.

Если кто-то хочет процитировать этот ответ в новом ответе, я приму этот ответ.

Другие советы

Вы XML-кодировали запрос?Я считаю, что вам нужно кодировать такие символы, как <, > и ", чтобы они были допустимыми XML, например.:

&lt;Query&gt;&lt;Where&gt;

и

&lt;FieldRef Name=&quot;Title&quot; /&gt;

Этот показывает, как переменные можно использовать для решения аналогичной проблемы.

Поработав с полем «Заголовок списка», он не возвращает мне значений, если я не использовал «Содержит».

Однако это может не исправить вашу ошибку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top