有没有办法确定单个SharePoint列表项是否与SPQuery / SPView匹配?

时间:2012-12-01 18:07:52

标签: c# sharepoint sharepoint-2010 sharepoint-workflow spview

SharePoint中的标准“警报”功能允许您仅在项目出现在指定视图中时发出警报。

我想在自定义工作流程(c#)中应用类似的逻辑。

给定一个SPListItem和SPView / SPQuery有没有人知道是否有一种有效的方法来查看该项是否属于该视图/匹配查询?

*有效的含义,不仅仅是运行查询,然后循环查找项目

2 个答案:

答案 0 :(得分:0)

我没有遇到过具有此类功能的SPListItem,SPQuery等方法。 检查当前项目是否在返回的集合中似乎不是一个坏主意。但是,不是循环遍历所有项目,而是使用LINQ查询来帮助您。像这样:

itemCollection.Cast<SPListItem>().Any(i => i.ID.Equals(yourItem.ID));

其中“itemCollection”是您从查询或视图中获取的项目集合。并且“yourItem”是您想检查它是否在集合中的项目。

答案 1 :(得分:0)

我有一个想法,如果我改变这个问题的答案中讨论的想法How to query the SPView object

如果我修改查询以从视图中执行所有过滤器,但也添加一个ID等于我的项目ID的子句,我将得到1个结果或0,然后我可以检查计数。

表现明智我不确定Mathieu的建议和这个想法之间哪个更有效?

明天我会调查......

<强>更新 我的技术很有效。我想(从设计的角度来看)在数据库端而不是通过XML查询进行ID检查会更有效。

感谢您对Mathieu的建议。