[英]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.