如何使用MOSS中其他站点的列表?

时间:2008-09-18 14:06:39

标签: sharepoint moss

我在一个网站上有一个公告列表。我想将它作为Web部件添加到每个子网站的顶部。我怎样才能在MOSS中做到这一点?

6 个答案:

答案 0 :(得分:4)

在这种情况下,我使用了数据视图Web部件。创建Web服务数据源以从其他站点的列表中获取数据。

很像这样:

http://www.sharepointblogs.com/ssa/archive/2007/02/23/showing-web-service-data-in-a-data-view-web-part.aspx

答案 1 :(得分:2)

有几点。

首先,您指定使用WSS 3.0,因此CQWP不可用(您需要MOSS并且已启用发布以使其可用)。增强型社区版本也不适用于您,因为它源于CQWP。

其次,我同意Eugene Katz的观点,即DataFormWebPart是一种简单的方法,我生成它的方式与他发布的链接略有不同。在Sharepoint Designer中,打开要放置Web部件的所需站点。从任务窗格菜单中选择数据源库,然后单击窗格底部的“连接到另一个库...”,并浏览/选择包含公告列表的父站点。现在,您只需将您的公告作为DataFormWebPart从数据源库窗格中新创建的节点添加,就像它在您的站点上一样。如果您不熟悉,Sharepoint Designer帮助会显示如何执行此操作。

根据自己的喜好设置DataFormWebPart之后,可以通过以下操作更轻松地将其添加到其他站点:突出显示新构建的DataFormWebPart并选择文件/导出/保存Web部件到... /站点库。它现在将作为可添加的Web部件在整个网站集中可用。

答案 2 :(得分:1)

开箱即不可能。列表仅限于一个站点。

您唯一的选择是使用内容查询Web部件(在SharePoint Standard或更高版本中可用)。

Here是如何使用CQWP的。

还增强了 - 社区版here

您可以将这些嵌入到子网站模板中。

答案 3 :(得分:0)

您应该使用SharePoint对象模型获取该特定列表的SPList对象。一旦你得到相同的,你可以使用RenderAsHtml()方法渲染列表。请注意,RenderAsHtml()方法将SPQuery对象作为参数。您需要使用适当的Query字符串创建SPQuery对象。此代码可以覆盖自定义webpart的RenderWebPart()方法:

SPSite site = new SPSite(siteURL);

SPWeb web = site.OpenWeb(webName);

SPList list = web.Lists [listName];

SPQuery query = new SPQuery();

query.Query = queryString;

string html = list.RenderAsHtml(query);

output.Write(HTML); // output是RenderWebPart方法中的HtmlTextWriter对象。

答案 4 :(得分:0)

内容查询Web部件或开源增强内容查询Web部件是实现此目的的好方法。如果您没有MOSS但是WSS,Katz先生和Ashwin先生的答案是可以接受的,但回答方式不同这个问题。

答案 5 :(得分:0)

用于执行此操作的非常棒的Web部件是Codeplex上的Content By Type Web部件。它还支持从任何子网站的任何列表中显示给定内容类型的项目。

请参阅:http://www.codeplex.com/eoffice