2015-02-25 4 views
1

У меня есть шаблон продукта с мультиселекцией, который ищет другие элементы продукта. Для этого я использую Sitecore запрос на исходном поле: множественныйSitecore query exclude self

query:fast:/sitecore/content/Home//*[@@templateid='{DEFA2E43-E688-48E5-AE28-1ABA761105E2}'] 

С этим запросом все продукты шоу в том числе выбора текущего элемента продукта.

Как я могу исключить элемент продукта, над которым я работаю? (Исключить себя?)

Заранее спасибо

ответ

1

Вы должны быть в состоянии использовать ExcludeItemsForDisplay где вы установили идентификатор элемента, который вы хотите исключить.

См ссылку - http://firebreaksice.com/tame-your-sitecore-treelists/

Сложность будет тогда установить идентификатор программно с помощью быстрого запроса, то есть я, если жестко прописывать это может удовлетворить ваши требования.

+0

Да, это та часть, в которой мне нужна помощь –

1

Я думаю, что правильный путь для этого - использовать трубопровод getLookupSourceItems. Я написал сообщение в блоге об этом трубопроводе здесь:

http://ctor.io/dynamic-field-sources-with-getlookupsourceitems-pipeline/

В этом трубопроводе вы знаете идентификатор текущего элемента с args.Item.ID. Вы можете динамически переписать источник в запрос, исключая текущий элемент. Что-то вроде этого (непроверенные):

query:fast:/sitecore/content/Home//*[@@templateid='{DEFA2E43-E688-48E5-AE28-1ABA761105E2}' and @@id != '<current item id>'] 

Источник может быть переписано с args.Source (см пост в блоге для получения дополнительной информации).