var currentCultureInfo = new CultureInfo("no"); var contentLoader = ServiceLocator.Current.GetInstance<IContentLoader>(); var startPage = contentLoader.GetChildren<StartPage>(ContentReference.RootPage, currentCultureInfo).FirstOrDefault(); ICollection<PageData> listOfPages = new List<PageData>(); ContentReferenceExtensions.GetDescendantsOfType<PageData>(startPage, listOfPages, currentCultureInfo); /// <summary> /// Recursive GetDescendantsOfType /// </summary> /// <typeparam name="T"></typeparam> /// <param name="page"></param> /// <param name="descendants">results</param> /// <param name="language"></param> public static void GetDescendantsOfType<T>(PageData page, ICollection<T> descendants, CultureInfo language) where T : class { var contentRepository = ServiceLocator.Current.GetInstance<IContentRepository>(); var children = contentRepository.GetChildren<PageData>(page.ContentLink, language); foreach (var child in children) { if (child is T) { descendants.Add(child as T); } GetDescendantsOfType(child, descendants, language); } }
Sunday, January 12, 2020
C#, EPiserver - Get all descending pages of all types
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment