需要 SharePoint CAML 查询帮助
这就是我正在做的事情(这是在 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>
我需要的是这个...
在 psuedocode 中:
如果 {Param1} 等于“所有提供程序”,只需过滤状态,其中状态等于“已提交”或“进行中” 否则,如果 {Param1} 不等于“所有提供商”,则对状态和提供商进行过滤,其中状态等于“已提交”或“进行中”并且提供商等于 {Param1}
我如何将其放入视图中XML 模式?
我知道这是可以做到的,因为 Microsoft 已经在 SharePoint 中使用了它,并且有第三方控件可以做到这一点。
例如...
1) 在 SP 中,单击左侧导航菜单中的“列表”。
2) 在最右侧的搜索框下方,您将看到带有下拉菜单的“查看:”。
3) 根据您选择的视图,URL 的查询字符串包含“BaseType”,该“BaseType”将更改为您选择的值。如果选择“所有站点内容”,则查询字符串中将省略“BaseType”。
谢谢, 约书亚
Here's what I'm doing (this is a quick search on Google and just one of the first results):
http://msdn.microsoft.com/en-us/library/cc300163(v=office.12).aspx
My databound DropDownList items looks like this:
<listitem>All Providers</listitem>
<listitem>Provider 1</listitem>
<listitem>Provider 2</listitem>
My current CAML query in the view looks like:
<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>
What I NEED is this...
In psuedocode:
If {Param1} equals "All Providers" just filter on Status where Status is equal to "Submitted" or "In Progress"
else if {Param1} is not equal to "All Providers" filter on Status and Provider where Status is equal to "Submitted" or "In Progress" and Provider is equal to {Param1}
How do I put this into View XML schema?
I know it can be done as Microsoft already uses it in SharePoint and there's 3rd-party controls that do it.
For example...
1) In SP, click on "Lists" in the left nav menu.
2) To the far right, under the search box', you'll see "View:" with a dropdown.
3) Based on which view you choose, the URL's querystring contains "BaseType" that changes to the value of your choice. If "All Site Content" is chosen, the "BaseType" is left out of the querystring.
Thanks,
Joshua
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,我认为你最好 为 Provider 字段添加过滤器 webpart,因为这允许您不使用空白值进行过滤。
如果您必须有一个过滤“所有提供商”的参数,您可以在调用 AllProviders 的列表上创建一个计算字段,并使用以下公式:
这样就可以输入您的查询子句:
状态字段将始终匹配“进行中”或“已提交”。
如果您的参数=“所有提供商”,那么您将匹配计算字段,否则您将匹配提供商字段。
请注意,这确实会阻止您让提供者调用“所有提供者”。
First off, I think you are better off adding a filter webpart for the Provider field, as this allows you to not filter with a blank value.
If you must have a parameter that filters on "All Providers" you can create a calculated field on the list call AllProviders say, with the formula:
This then allows your query clause to be entered thusly:
The Status field will always match either "In Progress" or "Submitted".
If your parameter = "All Providers" then you will match the calculated field, otherwise you will match on the Provider field.
Note that this does prevent you from having a Provider call "All Providers".