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

有帮助吗?

解决方案

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

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

这里 这就是您如何使用 CQWP。

还有增强-社区版 这里.

您可以将它们嵌入到您的子网站模板中。

其他提示

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

很像这样:

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

有几点。

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

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

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

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

SPSite 站点 = new SPSite(siteURL);

SPWeb web = site.OpenWeb(webName);

SPList 列表 = web.Lists[listName];

SPQuery 查询 = new SPQuery();

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top