- - PR -
GridView内に配置したRadioButtonのTextプロパティを取得
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-09 10:35
毎度お世話になります。
ASP.net(VB2005) DB:SQLServer2005 で開発を行っております、 GridView内にテンプレートとして配置した RadioButtonをクリックしたタイミングで クリックされたRadioButtonのTextプロパティをJavaScriptで 取得したいと思っております。 以下の様なスクリプトボタン押下時を埋め込み実行したのですが、 ダイアログには空白が表示されてしまいます。 ---------------------------------------------------- alert(document.formname.ctl00$contents$gridview1$ctl01$radiobutton.innerText) ---------------------------------------------------- RadioButtonでAutoPostBackを使用し、 クリックのタイミングでTextプロパティを 取得することは可能なのですが、毎回PostBackを発生させたくないので、 JavaScriptで出来ればと思い、投稿した次第です。 どなたか解決方法をご存知の方、 ご教授いただけますでしょうか? よろしくお願いいたします。 | ||||
|
投稿日時: 2006-08-09 11:36
文字列があるのはlabelタグの方ですよね。 | ||||
|
投稿日時: 2006-08-09 13:07
べる様
今回もご回答ありがとうございます。
はい、文字列があるのはlabelタグの中なのですが、 RadioButtonのIdとforで関連付けられていたので、 取得できるのではないかと思い、このような記述にいたしました。 このようにRadioButtonとLabelで関連付けられている場合には どのように取得すればよいのかがわからないのです、 labelには一意に識別する為のIdが無いので… よろしくお願いいたします。 | ||||
|
投稿日時: 2006-08-09 14:12
解決策としては大きく分けて二つ考え付きますね。 一つ目は、javascriptでfor属性をみてそのlabel要素を探す。 forはinput(radio)のIDを指しているわけで、一意なのだから。 二つ目は、 .NETの2.0のRadioButtonには幸い LabelAttributes なんていうプロパティがあって Label部分に属性を追加することができます。これで一意なidなりnameなりを足してあげれば。 問題はどのタイミングでやるかですが、GridViewのRowDataBoundあたりでしょうかね。 | ||||
|
投稿日時: 2006-08-09 20:29
お世話になります。
べる様、度々のご回答ありがとうございます。 上記二つ目の方法で実装することが出来ました! RowDataBoundですと、PostBack時に消えてしまうので、 RowCreatedイベントに実装することにしました。 以下実装部です。 ----------------------実装----------------------- Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated Dim Temp As RadioButton If (e.Row.RowType = DataControlRowType.DataRow) Then Temp = CType(e.Row.FindControl("RadioButton"), RadioButton) Temp.Attributes("onClick") = "document.getElementById('ctl00_lbl_test').innerHTML = document.getElementById('radio$" & e.Row.DataItemIndex & "').innerHTML" Temp.LabelAttributes.Item("id") = "rdi$" & e.Row.DataItemIndex End If End Sub --------------------------------実装------------------------------ この形で画面上のラベルにラジオボタン内のラベルを無事表示できました! このような初心者質問にご回答頂き、 ありがとうございました!! これで解決とさせていただきます。 |
1