Jak wskazuje pytanie - czy istnieje sposób na określenie, które strony zawierają moją część web?Sharepoint: jak mogę znaleźć wszystkie strony hostujące daną część internetową?
Odpowiedz
Jeśli szukasz kodu, mam coś dla ciebie. Jeśli chcesz znaleźć wszystkie elementy treści internetowych Zapytanie wtedy można zadzwonić do mojego kodu:
FindWebPart("http://server.com/", "Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart");
Oto kod:
public static void FindWebPart(string siteCollectionUrl, string webPartName)
{
using (SPSite siteCollection = new SPSite(siteCollectionUrl))
{
using (SPWeb rootSite = siteCollection.OpenWeb())
{
FindWebPartHelper(rootSite, webPartName);
}
}
}
public static void FindWebPartHelper(SPWeb site, string webPartName)
{
// Search for web part in Pages document library
SPList pagesList = null;
try
{
pagesList = site.Lists["Pages"];
}
catch (ArgumentException)
{
// List not found
}
if (null != pagesList)
{
SPListItemCollection pages = pagesList.Items;
foreach (SPListItem page in pages)
{
SPFile file = page.File;
using (SPLimitedWebPartManager mgr = file.GetLimitedWebPartManager(PersonalizationScope.Shared))
{
try
{
SPLimitedWebPartCollection webparts = mgr.WebParts;
foreach (System.Web.UI.WebControls.WebParts.WebPart wp in webparts)
{
// Here perform the webpart check
// For instance you could identify the web part by
// its class name
if (webPartName == wp.GetType().ToString())
{
// Found a match! Now do something...
Console.WriteLine("Found web part!");
}
}
}
finally
{
// Needs to be disposed
mgr.Web.Dispose();
}
}
}
}
// Check sub sites
SPWebCollection subSites = site.Webs;
foreach (SPWeb subSite in subSites)
{
try
{
FindWebPartHelper(subSite, webPartName);
}
finally
{
// Don't forget to dispose!
subSite.Dispose();
}
}
}
Oczywiście można zrobić małe zmiany do tego kodu. Obecnie robi porównanie ciągów, ale łatwo jest to zrobić w bardziej typowy sposób. Baw się dobrze!
drodze alternatywa, jeśli chcesz przetestować strony część internetowych w tym domyślnej strony na serwisach współpracy, można użyć następującego fragmentu kodu, który wykorzystuje właściwość Pliki obiektu SPWeb:
private static void FindWebPart(string siteUrl, string webPartName)
{
using (var site = new SPSite(siteUrl))
{
foreach (SPWeb web in site.AllWebs)
{
foreach (var file in web.Files.Cast<SPFile>().Where(file => file.Name.EndsWith("aspx")))
{
FindWebPartOnPage(webPartName, file);
}
var pagesTemplateType = (SPListTemplateType)Enum.Parse(typeof(SPListTemplateType), "850");
foreach (var documentLibrary in web.Lists.Cast<SPList>().Where(list => list.BaseTemplate == pagesTemplateType || (list.BaseTemplate == SPListTemplateType.DocumentLibrary && list.Title.Contains("Pages"))))
{
foreach (var file in documentLibrary.Items.Cast<SPListItem>().Where(item => item.File.Name.EndsWith("aspx")).Select(item => item.File))
{
FindWebPartOnPage(webPartName, file);
}
}
web.Dispose();
}
}
}
private static void FindWebPartOnPage(string webPartName, SPFile file)
{
using (var webPartManager = file.GetLimitedWebPartManager(PersonalizationScope.Shared))
{
if (webPartManager.WebParts.Cast<WebPart>().Any(webPart => webPart.GetType().Name == webPartName))
{
Console.WriteLine(file.ServerRelativeUrl);
}
webPartManager.Web.Dispose();
}
}
Uwaga: biblioteka stron utworzona przez funkcję publikowania nie ma wartości BaseTemplate w SPListTemplateType.DocumentLibrary; zamiast tego jest reprezentowany przez „ukryte” wartość 850.
To się nazywa podobny sposób do odpowiedzi LeonZandman jest jednak tylko nazwa klasy jest używane do dostarczania meczu:
FindWebPart("http://yoursite.com/", "MyWebPart");
- 1. Jak stale aktualizować część strony
- 2. Odśwież Część strony (div)
- 3. Jak znaleźć widoczną część kontrolki?
- 4. Jak mogę znaleźć wszystkie zmienne statyczne w moim projekcie C#?
- 5. Jak znaleźć wszystkie linki/strony na stronie internetowej
- 6. Wydrukuj określoną część strony internetowej
- 7. Jak mogę się dowiedzieć, czy obiekt implementuje daną metodę?
- 8. Znalezienie wszystkie rekordy zawierające daną podpole w MongoDB
- 9. Jak znaleźć trasę bieżącej strony?
- 10. Dodaj kontrolę użytkownika do części strony w Sharepoint 2013
- 11. Jak znaleźć wszystkie podfoldery folderu?
- 12. jak mogę wydrukować stronę internetową z całym jej stylem css dołączonym do strony?
- 13. SharePoint Niestandardowe działanie w witrynie Ustawienia strony
- 14. Jak znaleźć wszystkie kwadraty siatki na linii?
- 15. Jak mogę znaleźć wszystkie obiekty odwołujące się do myObject?
- 16. Jak mogę znaleźć wszystkie publiczne komentarze do użytkownika Github?
- 17. Jak mogę znaleźć wszystkie fasolki z niestandardową adnotacją @Foo?
- 18. Jak pobrać pełną stronę internetową?
- 19. SharePoint 2013 dodać javascript po załadowaniu strony
- 20. Jak znaleźć wszystkie konstruktory statyczne?
- 21. Sharepoint część Custom Web nieruchomość nie pojawi się w przyborniku
- 22. Jak mogę załadować stronę internetową w widoku webowym phonegap?
- 23. Gdzie mogę umieścić mój CSS, jak mogę utworzyć link do niego ze strony wzorcowej?
- 24. Jak mogę zachować stan części WWW z poziomu strony zawartości strony WWW klienta?
- 25. Jak mogę zastosować tylko część skrytki git?
- 26. Załaduj tylko część strony z jquery
- 27. Jak uruchomić daną funkcję w Bash równolegle?
- 28. Jak wydrukować określoną część strony za pomocą window.print()
- 29. Jak uzyskać wszystkie strony podrzędne strony nadrzędnej w wordpress?
- 30. Jak mogę wdrożyć aplikację internetową z sbt 0.11?
mistrz, dzięki za help – nailitdown
Cieszę się, że mogę pomóc :-) – LeonZandman
Przy okazji, czy nie należy oznaczać mojej odpowiedzi jako odpowiedzi, klikając znak wyboru? – LeonZandman