2015-12-04 4 views
0

У меня есть определенный элемент, который использует подсчет sub1. Элемент, созданный с помощью этого sublayout, имеет поле «Switch Columns», которое я хочу удалить или скрыть (или скрыть/удалить раздел «Columned Grid», если это возможно). Обратите внимание, что я не хочу, чтобы каждый элемент этого шаблона, чтобы скрыть поле; только элементы с использованием sub1 (так как шаблон используется различными подслоями).Sitecore 8: Скрытие раздела или поля в элементе

enter image description here

Есть ли способ сделать это с помощью кода в ASCX файле sublayout?

ответ

3

Вы можете решить, используя дополнительный слой наследовать.

Создать 2 набор полей шаблона: Минимальный набор полей шаблона Шаблоны полей с полями для добавления.

sub1 Inheritance from the Template field минимальный набор другие макеты используют шаблон с Inheritance от минимального набора и поля добавления.

Возможно, это также можно использовать: Для Hide в редакторе содержимого. Вы можете запретить «Чтение полей» для роли/пользователя в поле «Шаблон» или «Раздел».

См https://community.sitecore.net/developers/f/8/t/2113

+0

Как я могу отрицать «чтение поля» через код? –

+0

Наверное, я не понимаю вопроса. Ответ изменен. Я думаю, вы можете использовать Inheritance для решения вашей проблемы. –

+0

По наследованию вы подразумеваете Наследование шаблонов? что означало бы создание другого шаблона, который наследуется от базы и вносит изменения в новый шаблон? Как я сказал ранее, я не хочу вносить какие-либо изменения в шаблоны, так как это изменит многие существующие элементы. –

-1

Может обычай трубопровода для редактора контента? Если вы подключаетесь к конвейеру <renderContentEditor>, вы можете проверить презентацию этого элемента, вынюхать подзадачу и ввести некоторый JavaScript, чтобы скрыть панель.

0

Нет, это невозможно. При просмотре элемента в редакторе содержимого ваш подъярус не загружается. Я бы рекомендовал вам переосмыслить вашу архитектуру. Возможно, это поле должно быть параметром рендеринга. Кроме того, вы можете создать отдельный шаблон, который будет служить источником данных для этих подслоев.

+0

Это было [уже предложено] (http://stackoverflow.com/questions/34060128/sitecore-8-get-sublayout-item-when-ascx-file-is-shared) к OP. – jammykam

1

Вы можете скрыть поля в редакторе содержимого с пользовательским процессором в getContentEditorFields см этот пост:

http://ctor.io/hide-fields-in-the-sitecore-content-editor/

Но, как и другие ответы предложили, я бы overthink свой подход. Лично я бы либо использовал два отдельных Sublayouts (с различным количеством столбцов, где вы можете легко их поменять позже, не теряя его datsource) или использовать это как параметр рендеринга.

+0

Я использовал разные макеты ... поскольку я думаю, что использование метода рендеринга param не повлияет на существующие элементы ... –