5

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

4

6 回答 6

4

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

很像这样:

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

于 2008-09-18T14:30:45.747 回答
2

几点。

首先,您指定您使用的是 WSS 3.0,因此 CQWP 不可用(您需要 MOSS 并打开发布以使其可用)。增强的社区版也不适合您,因为它源自 CQWP。

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

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

于 2008-09-21T18:49:15.200 回答
1

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

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

是使用 CQWP 的方法。

这里还有增强社区版。

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

于 2008-09-18T14:31:29.440 回答
0

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

SPSite 站点 = 新 SPSite(siteURL);

SPWeb web = site.OpenWeb(webName);

SPList 列表 = web.Lists[listName];

SPQuery 查询 = 新 SPQuery();

查询.查询 = 查询字符串;

字符串 html = list.RenderAsHtml(query);

输出.Write(html); //输出是RenderWebPart方法中的HtmlTextWriter对象。

于 2008-09-18T16:36:56.847 回答
0

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

于 2008-09-19T00:43:12.233 回答
0

Codeplex 上的 Content By Type Web 部件是一个非常棒的 Web 部件。它还支持从任何子站点的任何列表中显示给定内容类型的项目。

见: http: //www.codeplex.com/eoffice

于 2008-09-22T04:01:45.793 回答