Episerver 页面排序顺序不应影响网站页面排序顺序
Episerver sorting order of pages should not effect website pages sorting order
当我在 Episerver 中对页面进行排序时,它也会影响网站。意味着网站页面也改变了排序顺序。
我们如何以不影响网站页面排序顺序的方式对 episerver 中的页面顺序进行排序。
episerver中是否有任何配置或设置?
假设你有一个 PageDataCollection
你使用 FilterSort
class
示例
// your pages
PageDataCollection _newsPageItems;
FilterForVisitor.Filter(_newsPageItems);
new FilterSort(FilterSortOrder.PublishedDescending).Filter(_newsPageItems);
// The _newsPageItems are now filtered and sorted
这是从 Episerver 分类和保护所列信息的标准方法,另请阅读文章 Searching for pages based on page type
考虑到您使用 DataFactory 获取包含页面的列表,您可以从 Enumerable<PageData>
对象实例
构建 PageDataCollection
同时使用 DataFactory
是不好的做法,您也应该使用 FilterForVisitor
。我推荐的实施方式是
// Construct an IContentLoader, this can also be done using Dependency Injection
var loader = ServiceLocator.Current.GetInstance<IContentLoader>();
// Get the children of your reference
var children = loader.GetChildren<PageData>(pageLink, LanguageSelector.AutoDetect(true));
// Construct new PageDataCollection and filter for visitor
var sortableChildren = EPiServer.Filters.FilterForVisitor.Filter(children);
// Sort
FilterSort sortFilter = new FilterSort(FilterSortOrder.CreatedDescending);
sortFilter.Sort(sortableChildren);
当我在 Episerver 中对页面进行排序时,它也会影响网站。意味着网站页面也改变了排序顺序。
我们如何以不影响网站页面排序顺序的方式对 episerver 中的页面顺序进行排序。
episerver中是否有任何配置或设置?
假设你有一个 PageDataCollection
你使用 FilterSort
class
示例
// your pages
PageDataCollection _newsPageItems;
FilterForVisitor.Filter(_newsPageItems);
new FilterSort(FilterSortOrder.PublishedDescending).Filter(_newsPageItems);
// The _newsPageItems are now filtered and sorted
这是从 Episerver 分类和保护所列信息的标准方法,另请阅读文章 Searching for pages based on page type
考虑到您使用 DataFactory 获取包含页面的列表,您可以从 Enumerable<PageData>
对象实例
同时使用 DataFactory
是不好的做法,您也应该使用 FilterForVisitor
。我推荐的实施方式是
// Construct an IContentLoader, this can also be done using Dependency Injection
var loader = ServiceLocator.Current.GetInstance<IContentLoader>();
// Get the children of your reference
var children = loader.GetChildren<PageData>(pageLink, LanguageSelector.AutoDetect(true));
// Construct new PageDataCollection and filter for visitor
var sortableChildren = EPiServer.Filters.FilterForVisitor.Filter(children);
// Sort
FilterSort sortFilter = new FilterSort(FilterSortOrder.CreatedDescending);
sortFilter.Sort(sortableChildren);