- - PR -
WebFormの背景色の変更
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-28 20:38
いつも勉強させていただいてます。
検索をかけてこれだ!というものがヒットしなかったようなので、 とても初歩的な/常識的な知識なのかもしれませんが、教えてください。 ASP.NET(C#)でWebアプリケーションを作成していたのですが、 サーバーサイドで処理をおこなって、エラーであれば、 Webフォームの背景色を変更してほしい、と要望がありました。 javascript で普通に書けば、例えば、document.bgColor = "#FF0000"; の ように書けると思うのですが、どうも効きません。 CSSでBODYのスタイルで background-color を設定していまして、 この指定をはずすと、背景色を変えることができるようです。 お聞きしたいことは、 1.CSSの設定よりも強い背景色の(動的な)設定はできないのでしょうか 2.CSSの設定が強い場合、CSSでの背景色指定をはずし、サーバーサイドの コードでどうにかしようと思うのですが、 現在思いついている方法が、 背景色用にWebControlLabelをはりつけ、エラー時には
これでも背景色は変えれるのですが、もっとスマートな方法はないものでしょうか。 ![]() 以上、ご教授のほど、よろしくお願いいたします。 | ||||||||
|
投稿日時: 2004-04-28 22:22
ども、kalzeと申します。
要求に合うものかどうかわからないのですが。 document.bgColor で変更するのは、bodyタグで設定しているものだった気がします。
これで指定しているもの。 CSSで背景色の設定をしている場合、 CSSの設定の方が優先度が高い(はずな)ので、 document.bgColor では変更はされているんだけど、 表示に影響しないというところではないでしょうか? なので、javascriptを使用してよいというのであれば、 CSSの色設定を変更してしまえばよいのではないでしょうか?
あくまでサンプルですが。 一応、 IE6 Opera7.22 NN7.1 では動作確認してみました。 | ||||||||
|
投稿日時: 2004-04-30 20:27
kalzeさん、ご教授ありがとうございました。
CSSでの設定を変えれないのか??? と思い込んでいたので、 document.body.style.backgroundColor という書き方を初めて知りまして、 大変勉強になりました。 贅沢をいえば、 javascriptではなく、サーバーサイドでダミーのラベル等使わず、 書ければ綺麗だよなぁ、と思いはするのですが、 現状、教えていただいたjavascriptを使って、ダミーのラベルに書き出して 背景色を変える方向で進めようと思います。 ありがとうございました。 | ||||||||
|
投稿日時: 2004-05-01 02:28
はずしてたらすみません。
Literalコントロールではどうでしょう? ↓こんな感じで。Textプロパティの値を動的に変える。
↓またはこんな感じで。Visibleプロパティの値を動的に変える。
| ||||||||
|
投稿日時: 2004-05-01 02:47
↑を書きながら、別の方法を思いつきました。こちらの方がスマートかもしれません。
1. BODY要素にRUNAT属性をつけて、サーバコントロールとする。 ※HtmlGenericControlとして扱われます。 『<body id="BodyElement" runat="server">』 2. 上記コントロールのStyleプロパティの値を動的に変更する。 『BodyElement.Style["background-color"] = "red";』 | ||||||||
|
投稿日時: 2004-05-04 10:25
Heさん、ご教授ありがとうございました。
お恥ずかしながら、BODY自体を runat =server にする、ということ 自体に考えが及びませんでした。 (Formはrunat=server で利用しているのですが..) そしてHtmlGenericコントロール、という言葉も初めて知った次第です。..。 調べてみて、試してみて、一番よさそうな方法を使わせていただきたいと思います。 ありがとうございました。 | ||||||||
|
投稿日時: 2004-05-04 12:00
こんにちは
せっかくスタイルシートにデザインを外出ししてるのですから、ここもスタイルシートで対応するのはどうでしょう。 [スタイルシート側] BODY { background-color:white; その他属性 } BODY.ONERR { background-color:red; } ..としておいて、エラー時にはBODYにAttribute.Add(綴りは自信なし)でCLASS属性にONERR(例)を付加してやれば、背景色だけが上書きされると思います。 |
1