Sharepoint 2010 Список страниц, на которых используется веб-часть - PullRequest
1 голос
/ 06 апреля 2011

Я пытался использовать объектную модель, отсканировать страницу и перечислить все веб-части, которые находятся на странице. Я использую PowerShell, но я открыт для других идей.

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

например, если у меня есть веб-часть с заголовком «моя веб-часть» в галерее веб-частей, и я использую ее на странице А. Я вижу веб-часть «моя веб-часть» в списке powershell. Если я снова добавлю эту веб-часть на страницу или другую страницу и изменит заголовок на «Ваша веб-часть», который отображается в списке с новым заголовком, я не смогу связать две веб-части вместе, что свидетельствует о том, что эта веб-часть находится в процессе используется 2 раза.

Я проверил ID, Title, UniqueID, DisplayTitle и не вижу никакой ссылки.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 01 мая 2012

Вы должны иметь возможность связывать веб-части по их типу:

$w = Get-SPWeb http://localhost
$f = $w.GetFile("default.aspx")
$m = $f.GetLimitedWebPartManager([System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
$m.WebParts | % { $_.GetType().Name }

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

...