2016-11-14 10 views
0

У меня есть рендеринг, но вы хотите поместить его в разные заполнители на странице. Я хотел изменить HTML на основе заполнителя для обработки текущего рендеринга. Кто-нибудь наткнулся на этот сценарий и решил его? Поделись, пожалуйста.Sitecore 6.5: Как получить текущий рендеринг в webforms (non-mvc)

Пример: У меня есть пункт рендеринга карусели. У этого есть собственный класс .cs, где создается HTML. Теперь, в деталях презентации контента Sitecore, я добавляю один рендеринг карусели изображения с помощью placeplace zone1, а другой - карусель изображения для «place2». На основе zone1 и zone2 HTML меняется. Я переопределяю RenderModel (HtmlTextWriter writer), чтобы переопределить HTML.

+0

Является вас вопрос получения информации о текущем заполнитель? В пользовательском элементе управления? это должно быть: (Заполнитель) this.Parent.Parent; –

ответ

0

Вместо жесткого кодирования, основанного на заполнителе, вы можете использовать параметры рендеринга для достижения того же. Лучший подход - создать список значений, которые могут выбрать ваши пользователи, и поместить их в шаблон рендеринга. Добавьте это в определение рендеринга, и ваши пользователи смогут выбрать одно из значений, которое можно рассматривать как «варианты» вашего контроля. В вашем коде вы можете легко получить это значение и отрегулировать по желанию.

Этот метод потребует некоторой работы от ваших редакторов, поскольку они должны будут установить значение (вы можете использовать стандартные значения, чтобы помочь), но даст вам гибкость. Если вам нужен компонент в новых заполнителях или какие-либо другие изменения необходимы, эта гибкость принесет вам много времени и предотвратит жестко закодированные спагетти.

+0

Благодарим вас за ответ, я обновил вопрос с примера. Если я добавлю параметры рендеринга, как получить текущий рендеринг рендеринга, так что в RenderModel (HtmlTextWriter writer) я могу обновить html? – Kdev

+0

Если вы наследуете Sitecore Webcontrol, вы можете получить к ним доступ через свойство 'Parameters'. – Gatogordo

0

Вы можете получить заполнитель из sublayout, используя следующий код:

 Sublayout currentSublayout = this.Parent as Sublayout; 

     Placeholder currentPlaceholder = currentSublayout.Parent as Placeholder; 

получить имя использования заполнителем:

currentPlaceholder.Key