Я не уверен, что есть способ выйти из строя, чтобы установить источник данных treelist (или любое поле на основе списка, если на то пошло), в набор элементов и фильтровать по значению их полей.
Как насчет того, чтобы думать об этом по-другому.
Что делать, если у вас есть зеркало раздела продуктов в дереве где-то еще в вашем дереве, но вместо того, чтобы иметь все продукты в этом зеркальном разделе, у вас будут только активные продукты. Элементы в этом зеркальном разделе будут иметь поле перетаскивания, которое отображает исходный продукт в исходном разделе дерева. Чтобы сохранить этот список в актуальном состоянии, вы можете использовать настраиваемое действие при сохранении исходного продукта. Когда продукт сохранен, если установлен флажок Активный, создайте в разделе Зеркальные продукты дерева элемент типа Зеркальный продукт (см. Раздел «Зеркальные продукты») и установите ссылку на исходный продукт. Когда продукт будет сохранен, если флажок Активный не установлен, найдите Зеркальный продукт, который отображает его сохранение и удаление.
И, наконец, источником данных для вашего древовидного списка будет корень этой секции зеркальных продуктов дерева, а не сами исходные продукты. Таким образом, параметры для вашего treelist всегда будут только когда-либо элементы, которые сопоставляются с продуктами, чей флажок Active был проверен.
Следует иметь в виду: когда вы удаляете Зеркальный продукт, если на него ссылается treelist, эта ссылка останется; вам нужно будет проверить код на null, прежде чем пытаться использовать элемент treelist.
Я посмотрел ссылку, которую вы включили для пользовательского TreeList, который поддерживает Sitecore Query. От взгляда на код в ссылке то, что это делает, поддерживает использование Sitecore Query, чтобы установить источник в отдельный узел контента. Это не совсем то, что я хочу сделать. Я хочу установить источник для TreeList для всех дочерних узлов определенного узла и исключить определенные элементы контента из списка. Я не думаю, что я точно понимаю, как это сделать. –
Я не реализовал это, но из того, что я читаю, как только вы создали настраиваемый тип поля, вы должны использовать любой запрос в качестве источника данных. Ваш запрос будет определять, какие элементы отображаются в вашем списке (например, запрос:/[path_to_your_source_item] // * [@ your_field_name = 'somevalue'] –