在 SharePoint Server 2010 中安装功能时创建列表



我有一个包含设置列表模板的 SharePoint 功能,该模板由其他功能读取。列表必须具有特定名称才能使整个事情正常工作,因此理想情况下,我宁愿创建一个列表而不是列表模板。

我尝试通过覆盖FeatureInstalled方法玩EventReceiver类。它接收SPFeatureReceiverProperties类型的参数。我浏览了文档,发现一个属性 UserCodeSite 是指安装该功能的SPSite,如果它是一个Site范围的解决方案,在我的例子中就是这样。这样,我想编写一段代码,从功能中包含的列表模板创建特定列表。

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

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

还有其他想法吗?

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

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

SPWeb web = (SPWeb)properties.功能.父;

SPSite site = (SPSite)属性。功能.父;

希望这有帮助。

最新更新