我正在代码后面动态创建一个radiobuttons负载(vb.net on load),我想知道我应该如何在它们上创建事件。我有一个有两列的gridview,每行在两个列中都有一个radiobutton,它们组合在一起(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
该代码实际上更令人困惑,因为gridview实际上是翻转的(veritical,而不是水平)。所以我有一个名为0,1,2,3,4等的单选按钮,一组中有0和1,组中有2和3等,我只想知道哪一个已被更改。请记住,虽然我需要RB的名称或它在我的gridView中的位置,因为我必须更改它配对的RB的背景颜色!
答案 0 :(得分:0)
添加行(代码为C#,转换为VB):
r.CheckedChanged += new System.EventHandler(this.radiobuttonChecked);
创建RadioButton
时。 radiobuttonChecked
应该是您网页的方法:
protected void radiobuttonChecked(Object sender, EventArgs e)
{
...
}
您可以将发件人转发给RadioButton
并分析其属性。这将导致回发到服务器,您可以在其中修改单选按钮。
如果您想在客户端上执行此操作,那么您可以先将CssClass(例如“rbClass”)分配给所有这些文件的相同字符串,并使用
r.Attributes.Add("pairName", "<name for the pair of radiobuttons>")
然后将javascript添加到您的页面:
$(document).ready(function(){
$(".rbClass").change(function(){
// here you look at $(this).attr and
// adjust its and its pair's css accordingly
})
});