コードビハインド(ロード時のvb.net)でラジオボタンのロードを動的に作成していて、それらにイベントを作成する方法を考えています。2つの列を持つグリッドビューがあり、各行には、グループに含まれる両方の列にラジオボタンがあります(fyiグループは、一方をチェックし、もう一方をチェックしないことを意味します)。チェックした方の背景色を黄色に変更したい。これをどのように行うのが最善でしょうか?Javascript(すべてのラジオボタン変更イベントをキャッチ)、JQuery(すべてのラジオボタン変更イベントをキャッチ)、またはVb.net(作成時にメソッドをアタッチ)?これが私がそれらを作成する方法です。
Dim r As RadioButton
Dim l As Label
Dim radioBtnNumber As Integer = 0
For row As Integer = 0 To GridView1.Rows.Count - 1
If GridView1.Rows(row).RowType = DataControlRowType.DataRow Then
Dim x As Integer = 0
For Each tc As TableCell In GridView1.Rows(row).Cells
l = New Label()
l.Text = tc.Text
If (x = 1) Or (x = 2) Then
r = New RadioButton()
r.GroupName = String.Format("RdBtnGroup{0}", row)
r.ID = radioBtnNumber.ToString
//Could add in event here. Tried this but didn't work
//r.Attributes.Add("OnCheckedChanged", "radiobuttonChecked()")
tc.Controls.Add(r)
radioBtnNumber = radioBtnNumber + 1
End If
tc.Controls.Add(l)
x = x + 1
Next
End If
Next
そのコードは、実際にはグリッドビューが実際に反転しているため(水平ではなく垂直)であるため、より混乱します。したがって、0、1、2、3、4などの名前のラジオボタンがあり、グループに0と1、グループに2と3などがあり、どちらが変更されたかを確認したいだけです。ただし、RBの名前またはグリッドビュー内の位置が必要であることに注意してください。これは、ペアになっているRBの背景色も変更する必要があるためです。