如何在 SharePoint 2010 中自动在页面中添加讨论板

本文关键字:添加 SharePoint 2010 | 更新日期: 2023-09-27 18:35:34

我们在 Sharepoint 2010 中毫不费力地创建了一个讨论板,但我正在寻找一种解决方案,其中讨论板及其所有回复都自动添加到特定区域。也就是说,最终用户不需要添加讨论板,通过进入页面进入编辑模式然后添加 Web 部件的过程。但是,一旦用户创建讨论板,所有讨论和消息都会自动添加到页面(添加到页面中的某个区域)。

谢谢。

如何在 SharePoint 2010 中自动在页面中添加讨论板

将此代码添加到 Web 事件处理程序 (ListAdded) 中,以便自动运行此代码。 在该代码中,您需要检查列表类型是否为"讨论"。 在事件接收器中,你将需要获取对要在其中添加 Web 部件的 SPWeb 的引用,以及要使用的列表(在此示例中为联系人列表)。接下来,创建 ListViewWebPart 类的实例,您可以在其中设置 ZoneID、ListName 和 ViewGuid。这是棘手的部分,ListName 属性应包含列表的 ID(GUID),而不是列表的名称!!但是 ListName 属性的类型是字符串,因此您需要使用 将列表 GUID 转换为字符串。ToString("B")。ToUpper()。ViewGuid也是如此。最后,您需要获取对要在其中添加 Web 部件的页面的 WebPartCollection 的引用(在此示例中为主页,默认为.aspx)。现在,可以使用 Add 方法添加 Web 部件。

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebPartPages;
// Get a reference to a web and a list
SPSite site = new SPSite("http://localhost:8000");
SPWeb web = site.OpenWeb();
SPList list = web.Lists["Contacts"];
// Instantiate the web part
ListViewWebPart wp = new ListViewWebPart();
wp.ZoneID = "Left";
wp.ListName = list.ID.ToString("B").ToUpper();
wp.ViewGuid = list.DefaultView.ID.ToString("B").ToUpper();
// Get the web part collection
SPWebPartCollection coll = 
    web.GetWebPartCollection("default.aspx", 
    Storage.Shared);
// Add the web part
coll.Add(wp);