簡體   English   中英

在SharePoint中停用Web部件功能

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM