内容查询Web部件和已删除的事件发生次数

时间:2009-12-18 23:25:38

标签: sharepoint calendar web-parts

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

对于我的列表视图,我使用以下字段中的字段和公式来解决它。 = IF(ISNUMBER(FIND( “已删除”,标题)), “是”, “否”)
。 但是,在CQWP过滤器下拉列表中,我无法使用该字段。

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

更新:这是一个发布页面BTW。

2 个答案:

答案 0 :(得分:1)

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

要试用它,请打开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>

答案 1 :(得分:1)

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