2017-02-17 17 views
0

Есть ли способ получить доступ к свойствам веб-страницы с помощью шаблона репитера (или наоборот)?Доступ к свойствам веб-части изнутри шаблона CMSRepeater

<div ID="RepeaterWrapper" runat="server"> 
    <cms:CMSRepeater ID="repItems" runat="server"> 
     <ItemTemplate> 
      <div class="col-sm-4"> 
       <!-- I want to access this div in my code behind or else have it access a property from the code behind--> 
      </div> 
     </ItemTemplate> 
    </cms:CMSRepeater> 
</div> 

Я хочу установить Б.Г. цвет внутренней Div, и я не могу использовать классы как свойство задается в виде шестнадцатеричного цвета, так что будет означать несколько тысяч классов!

Худший сценарий сценария Я могу сделать это с некоторыми js, но предпочел бы «более чистый» способ сделать это, если он существует.

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

ответ

2

Предполагая, что ваш источник данных имеет этот фоновый цвет в возвращаемых данных, как только вы привяжете свой источник данных к ретранслятору, у вас есть доступ к этому в шаблонах элементов. Просто использовать что-то вроде этого:

<div class="col-sm-4 <%# Eval("BgColorColumnName") %>">

Теперь, если вы хотите, чтобы установить значение от самого фактического WebPart, вы должны убедиться, что имущество является государственной собственностью, то вы можете использовать что-то вроде:

<div class="col-sm-4 <%# YourPublicPropertyName %>">

+0

Для большей ясности он хотел получить собственность из самой веб-части. Я всегда использовал'control.Attributes ['css'] + = значение 'в коде, стоящем до сих пор – rory

+1

@rory, что является рекомендуемым подходом. Я уклоняюсь от настройки вещей в файле макета ascx, как это главным образом потому, что конечный пользователь может редактировать файл макета ascx в пользовательском интерфейсе Kentico. –

0

Собираются все элементы имеют один и тот же цвет? Если на каждый элемент, то измените элементы, которые вы тянете, чтобы включить значение.

0

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

Если вы можете получить к нему доступ в любом месте от макроса, вы можете использовать CMS.MacroEngine.MacroContext.Current.ResolveMacro(), чтобы решить эту проблему и получить значение.

Не могли бы вы дать нам немного больше информации о том, где будет храниться цвет div BG? почему он должен быть в самом репитере?