SharePoint内容查询Web部件 - 忽略当前级别

时间:2009-10-09 15:24:11

标签: sharepoint

考虑此SharePoint网站层次结构:

- Site Collection
 - Site1
     - Subsite1
         - AnotherSubsite1
             - Page1
             - Page2
         - AnotherSubsite2
     - Subsite2
         - Page3
         - Page4
 - Site2

您可以假设上述层次结构中的每个站点都有一个默认页面。

如果我将CQWP放在Site1的默认页面上,我是否可以指示它开始将数据放在低于它放置位置的一级?即忽略它当前所在的页面/网站,以便它返回:

     - Subsite1
         - AnotherSubsite1
             - Page1
             - Page2
         - AnotherSubsite2
     - Subsite2
         - Page3
         - Page4

谢谢

1 个答案:

答案 0 :(得分:3)

我会扩展CQWP,然后连接我自己的ProcessDataDelegate以删除不需要的数据。例如:

protected override void OnInit(EventArgs e)
{
    this.ProcessDataDelegate += ProcessItems;
}

public DataTable ProcessItems(DataTable data)
{
    // Query the DataTable and remove unnecessary information
}

data中的WebId列是每个返回项的SPWeb对象的GUID。查找您不再需要的网站SPWeb.ID,然后删除这些行。请注意,WebId列中的GUID是大写字母,格式为“{”,如Guid.ToString()中所述。

请记住最后使用AcceptChanges()以确保更新DataTable。