我有一个带有radiobuttons的中继器。
<script type="text/javascript">
$(document).ready(function ()
{
$("#test input:radio").attr("name", "yourGroupName");
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="test">
<asp:Repeater runat="server" ID="rep" onitemdatabound="rep_ItemDataBound"
onitemcommand="rep_ItemCommand">
<ItemTemplate>
<asp:RadioButton ID="n" runat="server" Text='<%# Eval("name") %>' AccessKey='<%# Eval("id")%>' />
</ItemTemplate>
</asp:Repeater>
</div>
我使用顶部的javascript来修复.net中的radiobutton错误。
我在页面加载时将列表绑定到转发器,并在其周围使用if (!Page.IsPostback)
。
修改
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
rep.DataSource = z.Table.ToList();
rep.DataBind();
}
}
然后我有一个按钮,单击时应该使用已选中的单选按钮执行某些操作,这就是现在的问题:
foreach (RepeaterItem i in rep.Items)
{
RadioButton erb = i.FindControl("n") as RadioButton;
if (erb.Checked)
{
//do stuff
}
}
无论我选择哪个单选按钮,当我单击按钮并调试整个循环时,每个复选框== false。我正在用代码做更多的东西,但我简化了它,因为这是最大的问题。
我已经看过无数关于这个问题的主题,我已经仔细研究过它们,但我似乎仍无法让它发挥作用。
答案 0 :(得分:1)
请尝试在您的单选按钮上添加OnCheckedChanged="RadioButton1_OnCheckedChanged" AutoPostBack="true"
,这会在点击按钮时触发回发,您将能够找到已选中的
答案 1 :(得分:1)
我认为这完全取决于sequence of events in ASP.NET。
尝试将DataBind
代码放入Page_Init
程序,这样,无线电代码按钮的状态将在到达Page_Load
程序时设置。