我正在尝试在SharePoint Designer中创建一个数据源,通过XML Web Services连接到SharePoint列表。我已经创建了数据源并连接到了相关列表。我可以使用GetListItems查看所有数据,并且我想使用查询参数过滤它。
查询参数需要一个XmlNode,当我将其作为值放入时,出现错误:
<Query>
<Where>
<Eq>
<FieldRef Name="Title" />
<Value Type="Text">Foo</Value>
</Eq>
</Where>
</Query>
当然,我没有输入任何制表符或换行符,因为SharePoint Designer中只有一个单行输入字段。 我使用此查询时收到错误。
The server returned a non-specific error when trying to get data from the data source. Check the format and content of your query and try again. If the problem persists, contact the server administrator.
我只想过滤列表项结果集,以便只保留标题字段为“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放置数据源。