【问题标题】:Content Query Web Part and Deleted Occurrences of Events内容查询 Web 部件和已删除的事件发生
【发布时间】:2010-12-28 05:24:19
【问题描述】:

我有一个内容查询 Web 部件,在我们的 Intranet 主页上显示今天日期的 3 个事件。但是,当用户从重复系列中删除事件时,SP 会将该事件的标题更改为“已删除:[原始标题]”。我的内容查询 Web 部件仍然显示这些,我看不到将它们过滤掉的方法。

对于我的列表视图,我使用以下字段中的字段和公式来解决它。 =IF(ISNUMBER(FIND("Deleted:",Title)),"Yes","No").
但是,我在 CQWP 过滤器下拉菜单中无法使用该字段。

如何防止这些已删除的事件出现在 CQWP 中?

更新:顺便说一句,这是一个发布页面。

【问题讨论】:

    标签: sharepoint calendar web-parts


    【解决方案1】:

    虽然您可以通过 XSLT 执行过滤器,但最好在 CAML 查询本身中执行此操作。 Microsoft 的这篇文章How to: Customize the Content Query Web Part by using Custom Properties 展示了如何构造 CAML Where 子句(并且可以修改)。祝你好运!

    【讨论】:

    • 我忘了这个。差不多一年前,我在网站的其他地方做过。 ;-) 谢谢。
    【解决方案2】:

    您以前尝试过 DataFormWebPart (DFWP) 吗?它基本上是最基本的数据绑定 webpart,但奇怪的是也是最可定制的。

    要试用它,请打开 SharePoint 设计器并创建一个虚拟 aspx 页面来处理/玩弄。然后打开数据源窗格并找到您要使用的列表。然后单击该列表并选择“查看数据”。将适当的字段拖到 aspx 页面上。您现在有一个(非常)基本的网格来显示您的数据。

    不过,很酷的是,所有布局都是 xsl 驱动的,因此完全可定制。您甚至可以通过切换到源视图并将 xs,l 剪切并粘贴到单独的 xsl 文件中来使 xsl 可重用。然后使用此文件而不是内联 xsl,在移动内联 xsl 后,将 DFWP 属性 xsl(包含内联 xsl)从

    <xsl><!-- .... this is where the moved inline xsl used to be... --></xsl>
    

    <xsllink>/server relative url to xsl file</xsllink>
    

    唯一剩下的问题是 DFWP 的数据源现在绑定了一个列表。要跨站点集合进行汇总(如果您说要包含多个事件列表),您需要更改 DFWP 的 SPDataSource 的选择查询和数据源模式。 here 解释了如何做到这一点。

    现在解决您的实际问题:(在我公然插入未被充分认识的 DFWP 之后 :-D)DFWP 的 SPDataSource 基本上使用 SPQuery 或 SPSiteDataQuery(取决于数据源模式)来检索数据,您可以更明智地进行过滤。无论是在 CAML 查询本身中,还是通过使用以下内容过滤掉不需要的行:

    <xsl:if test="not(contains(@Title, 'Deleted:'))">
      <xsl:apply-templates />
    </xsl:if>
    

    【讨论】:

    • 虽然这是个好主意,但它在发布页面上不起作用,因为无法在 SP Designer 中进行编辑。
    • 为什么不呢?您仍然可以在发布页面上有一个 webpartzone,因此只需在 spdesigner 中创建您的 webpart,然后从 SPD 的文件菜单中导出 webpart(到文件或 webpart 库)现在您可以通过 sharepoint UI 将 webpart 添加到您的页面.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    相关资源
    最近更新 更多