单选按钮仅选择一个框....错误

时间:2014-07-22 14:52:54

标签: asp.net radio-button

以下代码有问题,因为我可以同时选择多个单选按钮....如何使以下代码只选择一个单选按钮?请帮忙。

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource_BGlist">
        <ItemTemplate> 
            <asp:RadioButton ID="Radio1" GroupName="BG_name" runat="server" Text='<%# Eval("BG_fileName") %>' />
            <asp:Label ID="BG_fileNameLabel" runat="server" Text='<%# Eval("BG_fileName") %>' />
        </ItemTemplate>

    </asp:ListView>

2 个答案:

答案 0 :(得分:0)

实现此目的的最简单方法是将listview包装在ASP.NET Panel或GroupBox中,ASP将实现您想要的分组。

添加面板不会将单选按钮组合在一起,如果它们包含在某种转发器中。可能最好的解决方案是使用Grebets' Answer中建议的RadioButtonList。

如果这不符合您的需求,您可以在创建后使用javascript更改单选按钮。添加到页面底部时,以下代码将起作用:

<script type="text/javascript">
    var inputElements = document.getElementsByTagName("input");
    for (var inputName in inputElements) {
        var input = inputElements[inputName];
        if (input.type === "radio") {
            input.name = "Group1";
        }
    }
</script>

如果您使用的是jQuery,可以简化脚本。

答案 1 :(得分:0)

我认为最有效的方法是使用RadioButtonList:

<asp:RadioButtonList ID="RadioButtonList1" runat="server" DataTextField="BG_fileName" DataValueField="BG_fileName" DataSourceID="SqlDataSource_BGlist">
</asp:RadioButtonList>

如果你想在代码隐藏中使用数据源(就像我一样):

public class MyClass
{
    public string BG_fileName { get; set; }

    public MyClass(string bgFileName)
    {
        BG_fileName = bgFileName;
    }
}

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {   
        RadioButtonList1.DataSource = new List<MyClass>
        {
            new MyClass("test string 1"),
            new MyClass("test string 2"),
            new MyClass("test string 3")
        };
        RadioButtonList1.DataBind();
    }
}