在Sharepoint Server 2010中创建功能时创建列表

时间:2012-05-07 13:30:58

标签: sharepoint sharepoint-2010

我有一个Sharepoint功能,其中包含一个设置列表模板,该模板由其他功能读取。列表必须有一个特定的名称才能使整个事情发挥作用,所以理想情况下我宁愿创建一个列表而不是列表模板。

我试图通过覆盖EventReceiver方法来使用FeatureInstalled类。它接收SPFeatureReceiverProperties类型的参数。我查看了文档,看到一个属性UserCodeSite引用了安装该功能的SPSite,如果它是Site范围的解决方案,它就在我的案件。这样我想写一段代码,从代码中包含的列表模板创建一个特定的列表。

SPWeb_object.Lists.Add(listName, "", SPListTemplate_object)

但是该属性为null,以及Feature属性。所以我无法获取SPSite对象,我无法获取SPWeb对象。

还有其他想法吗?

2 个答案:

答案 0 :(得分:2)

您可以创建一个新的列表实例ListInstance构造。见:http://msdn.microsoft.com/en-us/library/ms476062.aspx 将在激活该特定功能时创建该列表。要自动激活功能,您可以使用功能装订。见http://msdn.microsoft.com/en-us/library/ff648422.aspx

答案 1 :(得分:1)

列表创建是一个非常常见的要求。通常最好在激活而不是安装时创建列表实例,如另一张海报所示。您可以访问所需的激活范围(激活该功能的SPWeb或SPSite),如下所示:

SPWeb web = (SPWeb)properties.Feature.Parent;

SPSite site = (SPSite)properties.Feature.Parent;

希望这有帮助。