2009-06-12 9 views
0

私は、リクエストしているURLに応じて、既存のウェブサイトをブランド変更(ロゴ、色、画像など)できるようにテーマを実装しています。私はそれを行う方法を理解しており、画像のURLに関連するいくつかの例外を除き、スキンは正常に動作しています。テーマイメージのURLリベースasp.net

具体的には、私は皮膚に適用されない制御特性を持っています。テーマを実装する前に、次のように表示されます。

<DisplayImageChecked Url="~/Images/BobIcon-Green.png" /> 

明らかにテーマでは機能しません。だから多くの試行錯誤や読書の後、私はこれをこのように実装しようとしています:

<DisplayImageChecked Url="~/AppThemes/<%= Page.Theme %>/Images/BobIcon-Green.png" /> 

しかしこれはうまくいきません。生成されたhtmlは次のようになります。

<img src="AppThemes/%3C%25=%20Page.Theme%20%25%3E/Images/BobIcon-Green.png"/> 

正しい方向のポインタがあれば分かります。

デビッド

+0

はRepeater、ListViewなどのデータバインドコントロールに含まれていますか? – Kane

+0

はいこれはデータバインドコントロール内にあります。これは、Developer ExpressのASPxGridView上のGridViewDataCheckColumnのプロパティです。 – daveywc

答えて

0

は、あなただけのテーマと同じフォルダ内の画像をダンプすることができない理由はありますか?たとえばimage: "image.gif"というイメージをテーマフォルダに置くと、単にあなたのスキンで直接参照することができます。

ImageUrl="image.gif" 

このスキンをページのコントロールに適用すると、この問題は解決します。また、動的URLのことをやろうとするよりはずっと簡単です。あなたはまた、URLとして「/ BobIcon-Green.pngイメージ」を使用すること

<DisplayImageChecked Url='<%# "~/AppThemes/" + Page.Theme + "/Images/BobIcon-Green.png" %>' /> 
+0

ここでも私はマスターページを持っているので、これは役に立たない。 – daveywc

2

は、データバインドされたコントロールの内部結合構文を(二重引用符対シングルを見て)を使用します。 ASPはあなたのテーマ内のディレクトリにUrlを解決します。

+0

これは、ASPxGridView inisdeを使用する場合の最良の方法です –

0

+0

OPにホームフォルダに画像があり、その画像を参照している場合はどうなりますか? – Lenin

0

はここであなたのタスクについて移動する正しい方法です:

がUrlProperty属性であなたの財産を飾る、これは自動的に適切なURLにあなたの部分的なURLを変換するためにASP.NETを教えてくれます。

"〜/ AppThemes /" + Page.Theme + "/Images/BobIcon-Green.png"を使用すると、このトリックが実行されますが、すべての作業を自分で行う必要があるため、常に好ましいすべての作業をASPに任せることを練習する