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

时间:2012-05-28 10:06:58

标签: c# javascript asp.net sharepoint-2010

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

感谢。

1 个答案:

答案 0 :(得分: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);