【问题标题】:Is there a way to determine if a single SharePoint list item matches a SPQuery/SPView?有没有办法确定单个 SharePoint 列表项是否与 SPQuery/SPView 匹配?
【发布时间】:2012-12-01 18:07:52
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      性能方面我不确定 Mathieu 的建议和这个想法哪个更有效?

      我明天会调查...

      更新 我的技术很有效。我想(从设计的角度来看)在 DB 端而不是通过 XML 查询发生的 ID 检查会更有效。

      非常感谢您的建议 Mathieu。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-30
        • 2020-01-05
        • 2015-07-28
        • 1970-01-01
        • 2019-06-07
        • 2020-05-25
        • 2021-07-23
        • 1970-01-01
        相关资源
        最近更新 更多