ASP.NET 3.5 で ServerControl を作成し、CssClass を公開しているので、ユーザーはコントロールの外観を操作できます。私の問題は、ユーザーがデフォルトを変更したい場合を除き、CSS を構成する必要がないように、合理的なデフォルトを確立したいということです。
私の特定の問題は、コントロールが背景画像を表示する必要がある html div を出力していることです。ユーザーが CSS で別の画像を指定できるようにしたいのですが、デフォルトの背景画像を表示したいのですが、うまくいきません。
サーバー コントロール全体が div として出力され、クラス名はユーザーが CssClass で指定した値に設定されます。背景画像を必要とする div は、この外側の div 内に独自のクラス名で囲まれています。現在、コントロールを含むページの CSS で背景画像を設定しています。
<style type="text/css">
.cssClass .innerDiv {
background-image: url("http://....");
}
</style>
これで適切な画像が描画されます。しかし、そこにない場合、画像は描画されません。
私が望むのは、ServerControl がこれらの画像の URL を定義する CSS を発行し、ユーザーが追加した任意の CSS によって上書きされ、そのデフォルトの CSS が ServerControl のアセンブリに埋め込まれた画像への URL を含めることです。
そして、私はどちらかを行う方法がわかりません。さらに言えば、これが最善のアプローチであるとは確信していません。
何か案は?