【问题标题】:How to check which radio button is checked in data list?如何检查数据列表中选中了哪个单选按钮?
【发布时间】:2026-01-21 13:10:01
【问题描述】:

我正在尝试使用 javascript 或 c# 获取在数据列表中选中了哪个单选按钮以及该单选按钮的值。

我有代码:

<asp:DataList ID="DataList1" runat="server" 
        BorderStyle="None" BorderWidth="1px" CellPadding="4" 
        DataKeyField="Qno" DataSourceID="SqlDataSource1">
        <EditItemStyle HorizontalAlign="Left" />
        <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
        <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
        <ItemStyle BackColor="White" ForeColor="#330099" />
        <ItemTemplate>
            Qno:
            <asp:Label ID="QnoLabel" runat="server" Text='<%# Eval("Qno") %>' />
            <br />
            Question:
            <asp:Label ID="QuestionLabel" runat="server" Text='<%# Eval("Question") %>' />
            <br />
            Ans1:
            <asp:RadioButton ID="RadioButton1" GroupName="gp" Text='<%# Eval("Ans1") %>' runat="server" />
            <br />
            Ans2:
            <asp:RadioButton ID="RadioButton2" GroupName="gp" runat="server" Text='<%# Eval("Ans2") %>' />
            <br />
            Ans3:
            <asp:RadioButton ID="RadioButton3" GroupName="gp" runat="server" Text='<%# Eval("Ans3") %>' />
            <br />
            Ans4:
            <asp:RadioButton ID="RadioButton4" GroupName="gp" runat="server" Text='<%# Eval("Ans4") %>' />
            <br />
            <br />
        </ItemTemplate>
        <SelectedItemStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
        <SeparatorStyle Font-Bold="True" Font-Italic="False" Font-Overline="False" 
            Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right" />
    </asp:DataList>

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    使用此功能

    <script type="text/javascript">
    function GetSelectedRadioButtonValue(strGroupName) {
        var arrInputs = document.getElementsByTagName("input");
        for (var i = 0; i < arrInputs.length; i++) {
            var oCurInput = arrInputs[i];
            if (oCurInput.type == "radio" && oCurInput.name == strGroupName && oCurInput.checked)
                return oCurInput.value;
        }
        return "";
    }
    </script>
    

    这样称呼

    GetSelectedRadioButtonValue('gp')
    

    参考to find the value of the radio button checked

    【讨论】:

    • 如何从数据列表中获取一个单选按钮值假设示例我想要从第 2 行或第 3 行中选中的单选按钮的值?
    【解决方案2】:

    你可以这样做

    <script type="text/javascript">
    function GetSelectedRadioButtonValue(strGroupName) {
        var arrInputs = document.getElementsByTagName("input");
        for (var i = 0; i < arrInputs.length; i++) {
            var oCurInput = arrInputs[i];
            if (oCurInput.type == "radio" && oCurInput.name == strGroupName && oCurInput.checked)
                return oCurInput.value;
        }
        return "";
    }
    </script>
    

    【讨论】:

      【解决方案3】:

      您正在寻找一个 javascript 解决方案,但 对于任何乐于使用 JQuery 的人 $("input[name=g]:checked").val()​ 'g' 是组名将是一个快速的解决方案。

      【讨论】:

        【解决方案4】:

        试试这个代码:

        {
             foreach (DataListItem item in DataList.Items)
                        {
                            RadioButtonList RB = item.FindControl("RB") as RadioButtonList;
                            if(RB!=null && RB.SelectedValue!=null)
                        {
                            Label1.text=RB.SelectedValue //for testing purpose only
                        }
                   }
        

        【讨论】:

          【解决方案5】:

          在Datalist的itembound事件上试试下面的代码

          RadioButton rdbtn= e.Item.FindControl("RadioButton1") as RadioButton;
          var chkstring = rdbtn.Checked;
          

          无论是否检查,您都会得到该值 同样它

          【讨论】:

            最近更新 更多