[英]Deactivating web part feature in sharepoint
我已经使用wspbuilder工具开发了一个Web部件(具有功能的Web部件)。
部署(到网站集)后,您必须激活功能才能使用此Web部件-到目前为止非常好。
但是,当停用该功能时,Web部件仍保留在添加了该部件的任何站点上,此外,Web部件库中是否仍提供该部件?
这是预期的行为吗? 是否无法从网站集中的所有子站点中删除Web部件,也无法将其从Web部件库中删除?
谢谢 ;)
这是预期的行为。 您可以自动将其删除,但是必须编写功能接收器才能完成。
有关为SharePoint 2007创建功能接收器的详细信息: http : //sharepointdevwiki.com/display/public/How+to+add+a+Feature+Receiver+to+a+Feature
您可以使用以下代码来做到这一点:
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
if (site != null)
{
try
{
SPList wpGallery = site.GetCatalog(SPListTemplateType.WebPartCatalog);
SPQuery query = new SPQuery();
query.Query = “<Where><Eq><FieldRef Name=’FileLeafRef’ /><Value Type=’Text’>webpartname.webpart</Value></Eq></Where>”;
SPListItemCollection items = wpGallery.GetItems(query);
if (items.Count > 0)
{
items[0].Delete();
}
}
catch { }
}
}
创建Web部件时,WSPBuilder会自动将删除事件接收器添加到功能中。 很方便。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.