如何在sharepoint设计器中插入查询值作为参数?

时间:2008-12-09 16:58:50

标签: sharepoint moss wss sharepoint-designer xmlnode

我正在尝试在SharePoint Designer中创建一个通过XML Web Services连接到SharePoint列表的数据源。我创建了数据源并连接到相关列表。我可以使用GetListItems查看所有数据,我想使用查询参数对其进行过滤。

查询参数采用XmlNode,当我把它作为值时,我得到一个错误:

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

当然,我没有输入任何标签或换行符,因为我在SharePoint Designer中只有一行输入字段。我收到此查询的错误:

  

服务器返回非特定的   尝试从中获取数据时出错   数据源。检查格式和   您的查询内容,然后重试。   如果问题仍然存在,请联系   服务器管理员。

我只想将列表项结果集过滤为标题字段为“Foo”的结果集。可以在SharePoint Designer中完成吗?


更新:转义&lt;和&gt;以这种方式也失败了:

&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调用的known issue。显然,他们在提交之前对&lt; s和&gt;进行了过度编码。给出的解决方法是在没有查询参数的情况下保存数据源,然后将其添加到页面并在“公共数据视图任务”对话框中创建过滤器。我能够使用以下过滤字符串使其工作:

[@ows_Title = 'Foo']

不幸的是,这对我没有多大帮助,因为我正在添加数据视图(显示数据),而不是我可以用来指向其他控件的数据源(如下拉列表)。

我仍在寻找一个很好的解决方案,让我可以使用SharePoint Designer放置数据源。

4 个答案:

答案 0 :(得分:2)

SharePoint Designer中存在错误。你不能像这样将Query对象传递给SOAPDataSource - XML得到了过多的编码。除了使用Visual Studio之外,您无法修复它。

如果有可用的修补程序,我会告诉您。

如果有人想在新答案中引用这个答案,我会接受这个答案。

答案 1 :(得分:1)

您是否对查询进行了XML编码?我相信你需要编码像

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

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

答案 2 :(得分:1)

This显示了变量如何用于解决类似问题。

答案 3 :(得分:0)

使用列表标题字段后,除非我使用“包含”,否则它不会为我返回值。

但这可能无法解决您的错误。