Проблема SharePoint с использованием компонента с узлом AllUsersWebPart

У меня есть функция SharePoint, которая устанавливает новый макет страницы.

Требование для этой функции состояло в том, чтобы установить макет страницы с веб-частью по умолчанию, чтобы, когда пользователь запускает действие «Создать страницу», страница создавалась с веб-частью, уже находящейся на странице.

Итак, я попытался добавить узел AllUsersWebPart в определение Elements страницы, например.

<Elements>
    ...
    <Module ...>
        ...
        <File ...>
            <AllUsersWebPart ...>
                ...
            </AllUsersWebPart>
        </File>
        ...
    </Module>
</Elements>

Установил, развернул функцию и т. Д. И, конечно же, получил полезную ошибку «Для этого объекта не определен конструктор без параметров» - скорее всего, проблема с моим определением в Elements.xml.

Теперь НАСТОЯЩАЯ проблема, с которой я столкнулся, заключается в том, что я попытался удалить раздел AllUsersWebPart из определения функции (чтобы на странице не было веб-частей при создании), и из-за фантастической ошибки в SharePoint веб-часть по-прежнему оставлен определенным для макета страницы, хотя определение функции говорит иначе - я нашел некоторые подробности об этом на http://sharepointblog.buus-oestergaard.dk/post/Default-webparts-in-sharepoint-pagelayouts.aspx (пункт 2).

Я пробовал обновить и удалить / переустановить эту функцию, но безрезультатно - как я могу удалить эту веб-часть из базы данных функции / содержимого, чтобы я мог использовать эту функцию, просто установив макет страницы или поместив правильное определение веб-части в особенности?


person marcus.greasly    schedule 14.05.2009    source источник


Ответы (2)


Хорошо, у меня работает макет страницы, вот шаги, которые я предпринял на случай, если это будет полезно:

1 Измените макет страницы в режиме обслуживания страницы веб-части:

http://<server name>/_catalogs/masterpage/<page name>.aspx?contents=1

Удалите оттуда все экземпляры веб-части.

2 Откройте макет (на сервере) в Designer и убедитесь, что WebPartZone / ZoneTemplate пустые. После проверки убедитесь, что макет страницы установлен на одобренный.

После этого макет страницы можно использовать - я смог удалить и повторно установить функцию макетов страниц без каких-либо проблем.

Похоже, что определения веб-частей остались в базе данных, поэтому при обновлении / переустановке компонента они уже связаны с зоной страницы / веб-части. Сортировка этого, вероятно, должна выполняться в коде в приемнике функций в функции макета страницы, если я когда-нибудь найду время написать это, я отправлю его где-нибудь ...

person marcus.greasly    schedule 14.05.2009

При удалении этой функции вы удостоверились, что ваш pagelayout удален из каталога Masterpage / pagelayout?

Элемент функции, используемый для добавления файла содержимого (pagelayout), не удаляет его при деактивации функции.

person Thomas Favrbo    schedule 14.05.2009
comment
Да, но это не имело никакого значения. Похоже, что SharePoint добавляет информацию из AllUsersWebParts в базу данных содержимого, но не обновляет ее правильно с обновленной информацией .. - person marcus.greasly; 14.05.2009