Url 具有同一字段的多个值的SharePoint筛选列表

Url 具有同一字段的多个值的SharePoint筛选列表,url,sharepoint,Url,Sharepoint,“显示列表中属于该类别的项目 健康或娱乐。” 我有一个示例列表:http://www.example.com/Lists/MyList/AllItems.aspx 如果我要筛选列表项以查找值为“Entertainment”的类别,URL将如下所示: http://www.example.com/Lists/MyList/AllItems.aspx?View={ViewId}&FilterField=Categories&FilterValue=Entertainment 假设我想按“娱乐”或“健

“显示列表中属于该类别的项目 健康或娱乐。”

我有一个示例列表:
http://www.example.com/Lists/MyList/AllItems.aspx

如果我要筛选列表项以查找值为“Entertainment”的类别,URL将如下所示:

http://www.example.com/Lists/MyList/AllItems.aspx?View={ViewId}&FilterField=Categories&FilterValue=Entertainment

假设我想按“娱乐”或“健康”类别的列表项进行筛选。不幸的是,此URL不起作用,因为我一次只能为同一字段筛选1个值:

http://www.example.com/Lists/MyList/AllItems.aspx?View={ViewId}&FilterField1=类别&FilterValue1=娱乐&FilterField2=类别&FilterValue2=健康


在SharePoint列表中使用同一字段(“或”条件)的多个值进行筛选的URL是什么?您需要在查询字符串中使用
FilterName
FilterMultiValue
的名称/值对来实现OR筛选

例如,要筛选SharePoint团队网站中的标准任务列表视图以返回所有“已完成”或“已延迟”的项目,您的URL如下所示:

http://www.example.com/Lists/MyList/AllItems.aspx?View={ViewId}&
FilterName=Status&FilterMultiValue=Completed;Deferred
在您的用例中,新URL将是:

http://www.example.com/Lists/MyList/AllItems.aspx?View={ViewId}&
FilterName=Categories&FilterMultiValue=Entertainment;Health
更新:
不幸的是,微软并没有很好地记录在SharePoint中工作的查询字符串参数。我甚至不记得我是在哪里第一次使用它的(有时你会看到一个本地web部件正在做一些事情&你自己试试看),但我从SP2007开始就一直在成功地使用它。不过,这里有一篇2012年的博文解释了同样的问题,并提供了更多的例子:

在Sharepoint 2013(Office 365)中也有同样的问题。我在列表UI中创建了我想要的过滤器(多个过滤器,其中一个包含单个字段的AND子句),然后单击“保存此视图”。工作正常。

在SharePoint中筛选多值查找列的解决方案。有关详细说明的链接: 代码供参考-希望这对一些读者有所帮助

函数多值查找(){
var项目=”;
var citiesListName=“城市”;
$(“选择[title='City可能值']选项”).remove();
$(“选择[title='State selected values']选项”)。每个(函数(i){
var clientContext=new SP.clientContext.get_current();
var oList=clientContext.get_web().get_lists().getByTitle(citiesListName);
var camlQuery=new SP.camlQuery();
camlQuery.set_viewXml(“+$(this.val()+”);
var items=oList.getItems(camlQuery);
clientContext.load(项目);
executeQueryAsync(成功,失败);
函数成功(){
var pn2=“”;
var pn1=“”;
var ListEnumerator=items.getEnumerator();
while(ListEnumerator.moveNext()){
var currentItem=ListNumerator.get_current();
if(currentItem.get_item('Title')!=null){
var pn1=currentItem.get_item('Title');
如果(pn2!=pn1){
项目=“pn1+”;
$(“选择[title='City可能值'])。附加(项);
pn2=pn1;
}
}
}
}
功能故障(发送器、参数){
//警报('请求失败。'+args.get_message()+'\n'+args.get_stackTrace());
}
});

}
在SPO上,我尝试了FilterMultiValue,但它对我无效。但是我已经成功地在值之间使用了一个简单的运算符%3b%23

在这个示例URL中,我使用view1(一个已经进行了一些过滤的公共视图),然后在产品字段中过滤该视图URL的“value1”和“value2”

我的用例:我们有一个带有产品文档链接的产品页面。当然,有一种产品很简单。但我需要很多不同产品组合的不同链接,我不想创建或生成1000个视图


为了解决这个问题,我使用了view1的基本URL。然后,我在屏幕上过滤我想看到的两个值,这两个值附加了URL。我使用附加的URL查看“OR”操作符是%3b%23。在这一点上,我使用了一个电子表格,其中包含查看URL所需的所有产品值,并在操作符中连接起来,创建了一个完整的URL。然后我们在web部件中使用这些URL作为产品链接。这是一种黑客行为,但它比个人视图或网站页面更快、更容易维护。

Hi@Stevangelista有相关文档吗?我试过了,但没有成功。顺便说一句,我正在使用SharePoint Designer 2010I。我刚刚发现它适用于“单行文本”列,但不适用于查找和选择列。我刚刚测试并验证了它适用于SP2007、SP2010和SP2013中OOTB任务列表的状态列(选择字段)。你确定你正确地应用了它吗?查询字符串param name本身是区分大小写的,您必须使用列的内部列名。虽然在我的真实案例中,我使用的是美国城市及其州(加利福尼亚州洛杉矶市),但“,”给我带来了问题。我必须用通配符“*”来包装它。谢谢有没有关于如何将(FilterName和FilterMultiValue)与(FilterField和FilterValue)混合的想法?很高兴它成功了!当然,请查看前面提到的链接,以获得一个在一个URL中同时使用这两种URL的示例。