我正在尝试在 SharePoint Designer 中创建一个通过 XML Web 服务连接到 SharePoint 列表的数据源。我已经创建了数据源并连接到有问题的列表。我可以使用 GetListItems 查看所有数据,并且我想使用查询参数对其进行过滤。
查询参数需要一个 XmlNode,当我把它作为值时,我得到一个错误:
<Query>
<Where>
<Eq>
<FieldRef Name="Title" />
<Value Type="Text">Foo</Value>
</Eq>
</Where>
</Query>
当然,我没有输入任何选项卡或换行符,因为我在 SharePoint Designer 中只有一个输入字段。我收到此查询的错误:
尝试从数据源获取数据时,服务器返回了一个非特定错误。检查查询的格式和内容,然后重试。如果问题仍然存在,请联系服务器管理员。
我只是想将列表项结果集过滤为标题字段为“Foo”的列表项。这可以在 SharePoint Designer 中完成吗?
更新:以这种方式转义 < 和 > 也会失败:
<Query><Where><Eq><FieldRef Name="Title" /><Value Type="Text">Foo</Value></Eq></Where></Query>
更新:这似乎是SoapDataSource 组件和 SOAP 调用的一个已知问题。显然,他们在提交之前对 <'s 和 >'s 进行了过度编码。给出的解决方法是在没有查询参数的情况下保存数据源,然后将其添加到页面并在 Common Data View Tasks 对话框中创建过滤器。我能够使用以下过滤器字符串使其工作:
[@ows_Title = 'Foo']
不幸的是,这对我没有多大帮助,因为我正在添加一个数据视图(显示数据)而不是一个数据源,我可以使用它来将其他控件指向(如下拉列表)。
我仍在寻找一个好的解决方案,让我可以使用 SharePoint Designer 放置数据源。