Отключение функции веб-части в sharepoint - PullRequest
4 голосов
/ 01 сентября 2010

Я разработал веб-часть с помощью инструмента wspbuilder (веб-часть с функцией).

При развертывании (в семействе сайтов) вам необходимо активировать эту функцию, чтобы использовать эту веб-часть - пока все хорошо.

Однако при отключении этой функции веб-часть остается на любом сайте, где она была добавлена, и, кроме того, она все еще доступна в галерее веб-частей?

Это ожидаемое поведение? Нет ли способа удалить веб-часть со всех дочерних сайтов в семействе сайтов, а также удалить ее из галереи веб-частей?

Спасибо;)

Ответы [ 3 ]

2 голосов
/ 01 сентября 2010

Это ожидаемое поведение.Вы можете удалить его автоматически, но для этого вам потребуется написать приемник функций.

Подробнее о создании приемника функций для SharePoint 2007: http://sharepointdevwiki.com/display/public/How+to+add+a+Feature+Receiver+to+a+Feature

0 голосов
/ 27 июня 2012

Вы можете сделать это, используя следующий код:

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 { }
    }
}
0 голосов
/ 02 сентября 2010

WSPBuilder автоматически добавляет приемник событий удаления в функцию при создании веб-части.Очень удобно.

...