在gridview中跨越两列的ASP.net单选按钮组

在gridview中跨越两列的ASP.net单选按钮组,asp.net,datagridview,radio-button,Asp.net,Datagridview,Radio Button,我在gridview中有两列单选按钮。每行中的单选按钮是一个组。单击“保存”按钮时,事件必须读取第1列中的选中值,并将其存储在管道分隔字符串中,将第2列中的选中值存储在另一个字符串中 在页面加载事件中,我动态地创建按钮(我已经尝试在前端绑定),并为每个控件设置唯一的ID。都是静态模式。每组中的单选按钮具有相同的文本和值 rbCannot.ID = "rbCannotSelect" & i rbCannot.GroupName = grpName rbMust.ID = "rbMust

我在gridview中有两列单选按钮。每行中的单选按钮是一个组。单击“保存”按钮时,事件必须读取第1列中的选中值,并将其存储在管道分隔字符串中,将第2列中的选中值存储在另一个字符串中

在页面加载事件中,我动态地创建按钮(我已经尝试在前端绑定),并为每个控件设置唯一的ID。都是静态模式。每组中的单选按钮具有相同的文本和值

rbCannot.ID = "rbCannotSelect" & i
rbCannot.GroupName = grpName 

rbMust.ID = "rbMustSelect" & i
rbMust.GroupName = grpName
在单击事件中:

For j As Integer = 0 To grdOptionRelations.Rows.Count - 1
    rbCannotID = "rbCannotSelect" & i
    rbCannot = CType(grdOptionRelations.Rows(j).Cells(0).FindControl(rbCannotID), RadioButton)
    If rbCannot.Checked Then valCannot += rbCannot.Attributes("value").ToString + "|"

    rbMustID = "rbMustSelect" & i
    rbMust = CType(grdOptionRelations.Rows(j).Cells(1).FindControl(rbMustID), RadioButton)
    If rbMust.Checked Then valMust += rbMust.Attributes("value").ToString + "|"

    If rbCannot.Checked Then Response.Write("rbCannot " & rbCannot.Text & " " & rbCannot.Checked.ToString & vbCrLf)
    If rbMust.Checked Then Response.Write("rbMust " & rbMust.Text & " " & rbMust.Checked.ToString & vbCrLf)

    i += 1
  Next
单击“保存”按钮后,我在“If rbCannot.Checked…”行上得到一个空引用异常

我做错了什么?如果您需要任何其他信息,请告诉我。感谢您的帮助


谢谢

解决了这个问题。我将对BindData子对象的调用移动到Init事件,而不是页面加载事件。

何时将单选按钮添加到gridview?解决了此问题。我将对BindData子对象的调用移动到Init事件,而不是页面加载事件。