カスタム コントロール内からページに追加する必要があります。URL(...) を使用していて、URL を解決する必要があるため、スタイルシート (.css) を使用できません。
今、私はやっています:
Page.Header.Controls.Add(new LiteralControl("<style type='text/css'>.xyz { color: blue; }</style>"));
しかし、もう少しエレガントなものを望んでいますか?
カスタム コントロール内からページに追加する必要があります。URL(...) を使用していて、URL を解決する必要があるため、スタイルシート (.css) を使用できません。
今、私はやっています:
Page.Header.Controls.Add(new LiteralControl("<style type='text/css'>.xyz { color: blue; }</style>"));
しかし、もう少しエレガントなものを望んでいますか?
ここに別の方法があります...例:
親 ASPX 部分:
<div id="div1" class="xyz" style="width: 40px; height: 40px;">
<span>abc</span>
</div>
コントロール内:
Dim xyzStyle As New Style()
xyzStyle.CssClass = "xyz"
xyzStyle.BackColor = Drawing.Color.LightBlue
Page.Header.StyleSheet.CreateStyleRule(xyzStyle, Nothing, ".xyz")
これは、親 ASPX ページにターゲット コントロールのクラス属性が設定されていることを前提としていることに注意してください。そうでない場合は、MergeStyle メソッドを使用してスタイルをコントロールとマージする必要があります。(これには、コントロールが である必要がありますrunat="server"
)。
このコードは次の出力をレンダリングします: (便宜上、ソース全体を表示しています)
<html>
<head>
<title>Untitled Page </title>
<style type="text/css">
.xyz { background-color:LightBlue; }
</style>
</head>
<body>
<form name="form1" method="post" action="MyPage.aspx" id="form1">
<div id="div1" class="xyz" style="width: 40px; height: 40px;">
<span>abc</span>
</div>
</form>
</body>
</html>