У меня есть хорошие новости и плохие новости для вас.
Во-первых, хорошие новости. Вы можете сортировать по свойствам контента с объектом Criteria до вы вытаскиваете 20 предметов. Вы захотите использовать свойства OrderByField и OrderByDirection для критериев.
criteria.OrderByField = ContentProperty.DateCreated;
criteria.OrderByDirection = EkEnumeration.OrderByDirection.Descending;
Плохие новости возникают при попытке заказать предметы на основе полей в интеллектуальной форме. Вы можете использовать , используя API IndexSearch, но так как Ektron 8.0 * все еще полагается на службу индексирования Microsoft, я не поклонник этого подхода и не имею никакого кода для обмена. Если вы решите пойти по этому маршруту, предпосылка заключается в использовании поиска для возврата идентификаторов содержимого в правильном порядке, а затем используйте критерии, как вы, для получения предметов с этими идентификаторами.
Что вы можете сделать может делать с помощью API-интерфейса Microsoft LINQ для сортировки данных после его загрузки, но для того, чтобы получить правильные результаты в правильном порядке, сначала необходимо загрузить все элементы (и, в идеале, кешировать их для минимизации воздействия на производительность). В качестве примера я использую один из моих типов контента, но вы должны получить эту идею.
var membersList = new List<SlideBannerType>();
var sortedList = membersList.OrderBy(s => s.EnableAlternateText);
var firstpage = sortedList.Take(20);
var nextpage = sortedList.Skip(20).Take(20);
Это не идеально, но это действительно работает очень хорошо для небольших (в сотни, возможно тысячи, но не десятки) наборов данных.
Во-вторых, хорошая новость заключается в том, что Ektron использует Microsoft Search Server для версий 8.5 и выше. У этого есть намного более надежный API и фантастический (с точки зрения скорости и надежности). Предпосылка на самом деле останется такой же, как для IndexSearch, используйте Search для получения идентификаторов в правильном порядке, а затем ContentManager (или ContentTypeManager), чтобы получить элементы. Я использовал этот подход несколько раз, хотя и не со Smart Forms. Ваш лучший результат будет получен от обновления до 8.6 и Microsoft Search Server и использования обоих API вместе для получения каждой страницы данных. При этом фактически было бы почти тривиально в этом случае смешивать в расширенных параметрах поиска и фильтрации, а также с новыми API поиска.
В каком поле вы занимаетесь? Поле contentdata, поле интеллектуальной формы, поле метаданных и т. Д.? Знание может повлиять на ответ. – egandalf
В одном случае мне нужно отсортировать по контенту, а в другом случае - данные смартформа – zkent
Однако последний случай - тот, который мне больше всего нужен. – zkent