SharePoint 2007动态筛选查找

时间:2011-05-09 15:35:41

标签: sharepoint-2007 argument-dependent-lookup filtered-lookup

早上好,所有。我正在寻找有关在 SharePoint 2007 中设置库模板的帮助。以下是详细信息:

  • 我有一个包含多个子网站的父网站。

  • 我想设置一个库模板,然后可以将其放在每个子网站上。这些库将从父站点上的一系列集中列表中提取,以便提供元数据选项。这样,我只需要维护一组列表,并且每个库都可以使用维护的列表信息。

  • 因为库存在于主站点的子站点上,所以我不能使用简单的查找。常规查找列类型仅适用于当前站点中的列表。

  • 我可以访问已过滤的查找列类型,它似乎是正确的选择,因为它允许我访问父网站上的集中列表。

我希望在基于此模板将文件上传到库时提示用户。选择文件后,将向用户显示要填写的元数据选项列表。

  • 我想让第一个过滤后的查找为用户提供一个选项列表。这目前工作正常。

  • 我希望第二次筛选查找根据第一次筛选查找中的选择提供筛选的选项列表。

  • 有一个CAML查询过滤字符串的部分,这就是我的挂断的地方。如何编写字符串来引用字段而不是静态值?

这是我尝试过的。在Apply Query Filter字段中,我输入了:

<Where>
  <Eq>
    <FieldRef Name='Category' /><Value Type='Lookup'>Blue</Value>
  </Eq>
</Where>

这样可行,但只提供值为 Blue 的结果,即静态字符串。我正在寻找一种方法来引用 Category 的实际选定值。它会产生以下效果:

<Where>
  <Eq>
    <FieldRef Name='Category' /><Value Type='Lookup'>[Category.Value]</Value>
  </Eq>
</Where>

我现在的挂断是我不知道正确的语法,或者这种语法是否存在。

非常感谢您的建议。我并不依赖于这种方法,所以如果有另一种方法可以实现同样的目标,我会很乐意接受它。

1 个答案:

答案 0 :(得分:0)

这是一个老问题,但我现在偶然发现它 - 如果用户仍然需要帮助,我想我会回答。 你可以这两种方式: 1.回调 2.查询字符串

无论哪种方式都可以正常工作,并将数据提供给您的查询。诀窍是添加一个查找参数,如:

<ParameterBinding Name="Category" Location="Control(Filter1)" DefaultValue=""/>

<ParameterBinding Name="Category" Location="QueryString(Filter1)" DefaultValue=""/>

然后,您可以在CAML查询中引用SPDataSource选择命令:

<Where>
<Eq>
    <FieldRef Name='Category' /><Value Type='Lookup'>{Category}</Value>
  </Eq>
</Where>

{Category}上方的变量名称是ParameterBinding提供的名称。

希望这有帮助。