1.使用<input type="radio" name="lichking" /> 不要加runat='server'
2.通过js控制一次只能选一个i:
function selectSingleRadio(rbtn1, GroupName)
{
$("input[type=radio]").each(function(i)
{
if (this.name.substring(this.name.length - GroupName.length) == GroupName)
{
this.checked = false;
}
})
rbtn1.checked = true;
}
<input type="radio" id="rbtnSelect" name ="FlowCode" value='<%# Eval("FlowCode") %>' runat="server" οnclick="selectSingleRadio(this,'FlowCode');" />3. 用radiobuttonlist .代码复杂 不宜控制。
4.修改asp.net基类 让 repeater里面的控件的id不是自动生成、
5. 后台判断 缺点是 点击之后 会刷新 页面
<table>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr><td><%#Eval("Areaname") %></td>
<td><asp:RadioButton ID="rdb1" runat="server" AutoPostBack="true" oncheckedchanged="RadioButton2_CheckedChanged"/></td></tr>
</ItemTemplate>
</asp:Repeater></table>
protectedvoid RadioButton2_CheckedChanged(object sender, EventArgs e)
{ RadioButton rdb = sender as RadioButton;
RepeaterItem item = rdb.Parent as RepeaterItem;
int count = Repeater1.Items.Count;
for (int i =0; i < count; i++)
{
RadioButton rdb1 = Repeater1.Items[i].FindControl("rdb1") as RadioButton;
if (i != item.ItemIndex)
{ rdb1.Checked =false;
}
}
}