dポイントプレゼントキャンペーン実施中!

お世話になります。
ASP.Net 初心者ではありますが、こちらで多岐に渡り質問させていただき、日々成長できていると思っております。この場をお借りして感謝申し上げます。
なるべく自身で解決したいと思うのですが、また壁に当たっております。

FormView_DataBound イベントの時に、データバインドさせてあるLabel を入れてあるタグがあります。
そのタグにスタイルを設定してあり、値により、そのスタイルの変更(背景色の変更)をしたいのですが、Labelに属してあるスタイルは変更できたのですが、Html上のタグの背景色が変更できないのです。いろいろと調べていくうちに、JavaScript で下記のような記述ができるようなのですが、これをこのまま FormView_DataBoundイベントに記述しても document のところでエラーが出てしまいます。
この部分には何かしらのコントロールの変数などを入れるのでしょうか?
ちなみに 背景色を変えたいタグには ID="Great" を入れてあるので、このタグの背景色を変える為に、下記のプログラムをどう記述すればよいのか、わかりません。

document.getElementById("Great").style.borderColor = "red"

ID = "Great"
スタイルが "newStyle1"
だった場合、上記をどう記述すればタグの背景色を変更できるでしょうか?

何卒、何卒よろしくお願い申し上げます。

A 回答 (1件)

質問の遷移が早すぎると思うのですが。


いつの間にか文面も変わっていて、戸惑いました。

結論から申し上げますと、サーバイベントであるItemDataBound中に、クライアントスクリプトであるJavaScriptをfireさせるのは、無理があります。
なので、サーバイベント中に、当該のHtml要素のStyleを変更するのがいいと思います。

<asp:FormView ID="FormView1" runat="server" ondatabound="TestDataBound">
 <ItemTemplate>
  <div runat="server" id="divTest">
   <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  </div>
 </ItemTemplate>
</asp:FormView>

protected void TestDataBound(object sender, EventArgs e) {
 var divTest = (HtmlGenericControl)this.FormView1.FindControl("divTest");
 divTest.Style["background-color"] = "red";
}

とかじゃ駄目ですか?
    • good
    • 0
この回答へのお礼

shockatzさま 大変お世話になっております。
大変申し訳ありませんでした。
JavaScript の document.getElementById で解決できるのかなと、質問を遷移させてしましました。改めてお詫び申し上げます。

Asp.Net のみならず、サーバーイベント、クライアントスクリプト、HTMLの要素、仕様なども合わせて勉強しないといけないと改めて思い知らされました。
例題のプログラムで、実現したかった、タグの背景色を変える事ができました。shockatzさまの叡智に感謝いたしております。

ありがとうございました。

お礼日時:2012/09/11 08:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!