2017-02-17 4 views
0

リピータのテンプレートを使用してwebpartのプロパティにアクセスする方法はありますか(またはその逆)。CMSRepeaterテンプレート内からWebパーツのプロパティにアクセス

<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のBGの色を設定したいとプロパティは16進数のカラーとして与えられているとして、それは数千のクラスを意味しますので、私はクラスを使用することはできません!

最悪のシナリオ私はいくつかのjsでそれを行うことができますが、存在する場合はそれを行う "純粋な"方法です。

ありがとうございます。

答えて

2

データソースに返されたデータの背景色があると仮定すると、データソースをリピータにバインドすると、アイテムテンプレート内のデータソースにアクセスできます。単純にこのようなものを使用します。

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

を今、あなたは、実際のWebパーツ自体から値を設定したい場合は、プロパティは、あなたのようなものを使用することができますパブリックプロパティであることを確認する必要があります

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

+0

わかりやすくするために、webpart自体のプロパティを必要としていました。私はいつも、今まで – rory

+1

@roryというコードの背後にあるコードで、'control.Attributes ['css'] + valueを使用していましたが、これは推奨されるアプローチです。主にエンドユーザーがKentico UIのascxレイアウトファイルを編集できるので、このようなascxレイアウトファイルを設定することを躊躇しています。 –

0

すべての商品は同じ色になりますか?アイテムごとにある場合は、値を含めるために引っ張っているアイテムを変更します。

0

これがポータルメソッドの場合は、ページテンプレートテーブルからXMLを取得し、そこから値を取得できます。純粋にコードから来て、リピーターであるため、通常、リピーターの外のどこかにデータを格納する必要があります(繰り返す項目や現在のページ・フォーム・データ内)。

マクロから任意の場所にアクセスできる場合は、CMS.MacroEngine.MacroContext.Current.ResolveMacro()を使用してそれを解決し、値を取得できます。

div BGの色を保存する場所についてもう少し詳しく教えてください。それは中継器自体になければならないのはなぜですか?

関連する問題