repeater和radiobutton 不能单选 的问题

由于radiaobutton是服务控件(即使你用htmlinputradio 控件 也不行,只要加了runat='server' 都不行),所以它生成的html的name属性都是不一样,即使你加了groupname 也不行。 因此 不能达到一次只选一个的目标。 解决这个问题有3个方法;
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;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值