ASP.NET Repeater控件如何实现默认选中第一个RadioButton单选按钮
可行解决方案
以下两种实现方式按需选择即可,均不会影响原有单选互斥逻辑:
方案1:服务端绑定实现(推荐,逻辑更可控)
- 先给Repeater控件添加
OnItemDataBound绑定事件,修改Repeater标签为:
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
- 对应后台.cs文件添加事件处理逻辑:
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { // 仅处理数据行 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { // 判断为第一行时设置单选框默认选中 if (e.Item.ItemIndex == 0) { RadioButton firstRdo = e.Item.FindControl("RadioButton") as RadioButton; firstRdo.Checked = true; } } }
方案2:纯前端JS实现(无需修改后台代码)
在现有JS代码基础上添加页面加载完成后的默认选中逻辑,修改后的完整JS代码如下:
<script type="text/javascript" > // 页面加载完成后自动选中第一个单选框 window.onload = function() { var allRadio = document.getElementsByTagName("input"); for (let i = 0; i < allRadio.length; i++) { if (allRadio[i].type == "radio") { allRadio[i].checked = true; break; } } } function singleselection(rbid) { var rbutton = document.getElementById(rbid); var rbuttonlist = document.getElementsByTagName("input") for (i = 0; i < rbuttonlist.length; i++) { if (rbuttonlist[i].type == "radio" && rbuttonlist[i].id !== rbutton.id) { rbuttonlist[i].checked = false; } } } </script>
内容的提问来源于stack exchange,提问作者santhosh karthi
相关产品推荐
相关产品推荐

