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);