2012-05-28 35 views
0

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

谢谢。

回答

0

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