Alex's answer (iterowanie za pośrednictwem stron -> strony> części do stron internetowych) jest dobre i "prawidłowy" sposób to zrobić, ale jest dość drogi na bardzo dużej stronie.
Alternatywą jest zapytanie do bazy danych. Wszystkie zwykłe zastrzeżenia odnoszą się do bezpośredniego dostępu do bazy danych: nie zmieniaj niczego, możesz przerwać w dowolnym momencie z dodatkiem Service Pack itd. Itd., Ale zakładając, że wszyscy jesteśmy dużymi chłopcami: -
Najpierw musisz dowiedzieć się o WebPartTypeId część internetowa zainteresowana:
Następnie uruchom to we wszystkich bazach danych zawartości.
SELECT DISTINCT D.SiteID, D.WebId, W.FullURL as WebURL, D.Id As DocumentId,
D.DirName, D.LeafName, tp_ID As WebPartSK
FROM dbo.Docs D WITH (nolock)
INNER JOIN dbo.Webs W WITH (nolock) ON D.WebID = W.Id
INNER JOIN dbo.WebParts WP WITH (nolock) ON D.Id = WP.tp_PageUrlID
WHERE WP.tp_ListId Is Null AND WP.tp_Type Is Null AND WP.tp_Flags Is Null
AND WP.tp_BaseViewID Is Null AND WP.tp_DisplayName Is Null
AND WP.tp_Version Is Null
AND WP.tp_WebPartTypeId='<your web parts id>'
Można to zrobić na odwrót (uzyskać listę wszystkich WebPartTypeId użytkowej), ale nie można uzyskać nazwę zespołu z hash WebPartTypeId więc trzeba by zrobić jakieś listy odnośników z części internetowe> typeid's.
@Ryan: Nie wiemy @ Active_t za tło więc należy być ostrożnym o założeniach ;-) Podczas odczytu z bazy danych przy użyciu NOLOCK jest niezbędna, aby zapobiec zakleszczenia i należy przyjąć, że wyniki mogą być niedokładne. Przepraszamy za zwiastowanie nawróconych! –
Edytowałem, aby dodać wskazówkę "brak blokady", ale musimy pamiętać, że nie jest to srebrna kula i wprowadza potencjalne problemy własne (dane w niespójnym stanie). Czy masz jakieś dobre referencje na temat możliwości spowodowania zakleszczenia? Byłoby dobrze, aby uzyskać ostateczne odpowiedzi na ten temat, ale nie jest zaskoczeniem, że oficjalna linia jest ... nie. – Ryan
Powiedziawszy, że problemy, które mogą być spowodowane odczytaniem niespójnych danych w tym przykładzie, są prawdopodobnie dość małe. – Ryan