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

ASP.net Radiobutton group spanning 2 columns in gridview

我在 gridview 的 2 列中有单选按钮。每一行的单选按钮是一组。单击“保存”按钮时,事件必须读取第 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 事件而不是页面加载事件。