从ASP.NET中动态生成的集中获取选定的单选按钮

时间:2011-07-21 14:37:09

标签: .net asp.net radio-button

我正在使用ASP.NET(2.0),我们希望从数据源生成一组单选按钮。这很简单,使用RadioButtonList,但我们希望与每个单选按钮关联的文本具有更多格式...特别是,一些文本应该是常规权重,一些是粗体。这似乎不是RadioButtonList的良好匹配。

使用Repeater,我可以轻松地为DataSet中的每个项创建一个RadioButton,为它们提供相同的GroupName,它们将在客户端正常工作......但是当提交表单时,它不是向我清楚如何发现选择了什么按钮(服务器端)。与RadioButtonList不同,我没有一个包含对象,我可以从中请求所选项目。

我们还可以通过点击单选按钮将信息发回服务器来使用更具互动性的东西,但我们希望尽可能避免额外的回发。

我错过了一些简单的东西吗?

3 个答案:

答案 0 :(得分:1)

将RadioButton置于面板中,然后迭代Panel

的控件集合
foreach (Control ctrl in Panel1.Controls)
    {
        if (ctrl.GetType().Name == "RadioButton")
        {
            if (((RadioButton)ctrl).Checked)
            {
                //...Do your Stuff..
            }
        }
    }

答案 1 :(得分:1)

如果您使用的是转发器,则可以使用ItemCommand事件。更多信息:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemcommand.aspx

答案 2 :(得分:1)

基本上就像@ Muhammad的回答 - 但是使用转发器而不是面板。只要您提交表单,就可以调用此子目录。

Private Sub rep()
    Dim myRepeater As New Repeater
    Dim myRadio As New RadioButton
    For Each myItem As RepeaterItem In myRepeater.Items
        myRadio = CType(myItem.FindControl("radio1"), RadioButton)
        If myRadio.Checked Then
            'do something
        End If
    Next
End Sub