考虑此SharePoint网站层次结构:
- Site Collection
- Site1
- Subsite1
- AnotherSubsite1
- Page1
- Page2
- AnotherSubsite2
- Subsite2
- Page3
- Page4
- Site2
您可以假设上述层次结构中的每个站点都有一个默认页面。
如果我将CQWP放在Site1的默认页面上,我是否可以指示它开始将数据放在低于它放置位置的一级?即忽略它当前所在的页面/网站,以便它返回:
- Subsite1
- AnotherSubsite1
- Page1
- Page2
- AnotherSubsite2
- Subsite2
- Page3
- Page4
谢谢
答案 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。