2014-07-22 75 views
0

以下代码有些问题,因为我可以同时选择多个单选按钮....我怎样才能让下面的代码只选择一个单选按钮?请帮忙。单选按钮只能选择一个盒子....错误

<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> 
+0

HTTP://www.codeproject .com/Articles/7960/How-to-group-RadioButtons或http://weblogs.asp.net/abdullaabdelhaq/radiobutton-inside-gridview-how-to-get-it-work-as-normal –

+0

如何使用一个'RadioButtonList'控件就像它在[this](http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_radiobuttonlist)演示中那样? – Ghukas

+0

@Ghurkas谢谢......但我可以在ListView中嵌套一个RadioButtonList,就像它在我的情况一样?如何?我一直无法做到这一点 – Gloria

回答

0

最简单的方法来完成,这是只是包装你的列表视图的ASP.NET面板或分组框中中,和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,那么脚本可以被简化。

+0

红色的面板文件,但它没有帮助....我也试图在ListView LayoutTemplate添加面板,它也没有工作... – Gloria

+0

你是绝对正确的小组不起作用。它在正常情况下会出现,但它看起来像ListView/repeater打破了该功能。编辑答案... – dave

+0

只要将RadioButton AutoPostBack设置为False,javascript就可以正常工作。 – Gloria

0

我认为最有效的方法将是使用单选按钮列表:

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

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

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(); 
    } 
} 
相关问题