【发布时间】:2011-11-05 17:19:56
【问题描述】:
这就是我正在做的事情(这是在 Google 上进行的快速搜索,只是最初的结果之一):
http://msdn.microsoft.com/en-us/library/cc300163(v=office.12).aspx
我的数据绑定 DropDownList 项目如下所示:
<listitem>All Providers</listitem>
<listitem>Provider 1</listitem>
<listitem>Provider 2</listitem>
我当前在视图中的 CAML 查询如下所示:
<Query>
<Where>
<And>
<Or>
<Eq>
<FieldRef Name="Status" />
<Value Type="Lookup">Submitted</Value>
</Eq>
<Eq>
<FieldRef Name="Status" />
<Value Type="Lookup">In Progress</Value>
</Eq>
</Or>
<Eq>
<FieldRef Name="Provider"/>
<Value Type="Text">{Param1}</Value>
</Eq>
</And>
</Where>
<OrderBy>
<FieldRef Name="ID" Ascending="FALSE"></FieldRef>
</OrderBy>
</Query>
我需要的是这个……
在伪代码中:
如果 {Param1} 等于“所有提供者”,只需过滤状态等于“已提交”或“进行中”的状态 否则,如果 {Param1} 不等于“所有提供者”过滤状态和提供者,其中状态等于“提交”或“进行中”并且提供者等于 {Param1}
如何将其放入 View XML 架构中?
我知道这是可以做到的,因为 Microsoft 已经在 SharePoint 中使用了它,并且有 3rd-party 控件可以做到这一点。
例如...
1) 在 SP 中,点击左侧导航菜单中的“列表”。
2) 在最右侧的搜索框下方,您会看到带有下拉菜单的“查看:”。
3) 根据您选择的视图,URL 的查询字符串包含更改为您选择的值的“BaseType”。如果选择“所有站点内容”,则查询字符串中会省略“BaseType”。
谢谢, 约书亚
【问题讨论】:
-
您没有提及 SharePoint 的哪个版本,但对于 2007,您可以使用 U2U CAML 查询生成器 (u2u.net/res/Tools/CamlQueryBuilder.aspx) 来构建您的查询。这为我省去了很多麻烦。
-
CAML 查询生成器也适用于 SharePoint 2010。链接:u2u.net/res/Tools/CamlQueryBuilder.aspx
标签: sharepoint list caml