0

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

谢谢。

4

1 回答 1

0

将此代码添加到 Web 事件处理程序 (ListAdded) 以便自动运行此代码。在该代码中,您需要检查列表类型是否为讨论。在事件接收器中,您需要获取对要在其中添加 Web 部件的 SPWeb 以及要使用的列表(在本示例中为联系人列表)的引用。接下来创建 ListViewWebPart 类的实例,您可以在其中设置 ZoneID、ListName 和 ViewGuid。这是棘手的部分,ListName 属性应该包含列表的 ID(GUID),而不是列表的名称!!但是 ListName 属性属于字符串类型,因此您需要使用 .ToString(“B”).ToUpper() 将 List GUID 转换为字符串。ViewGuid 也是如此。最后,您需要获取对要在其中添加 Web 部件的页面的 WebPartCollection 引用(在本示例中,主页为 default.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);
于 2012-05-28T14:00:12.990 回答