C# 如何防止单选按钮进行多次选择?
我正在网格视图控件中使用单选按钮,现在我想允许用户在网格视图中仅选择一个单选按钮,但我无法这样做。下面是我的设计代码。请帮助我C# 如何防止单选按钮进行多次选择?,c#,asp.net,C#,Asp.net,我正在网格视图控件中使用单选按钮,现在我想允许用户在网格视图中仅选择一个单选按钮,但我无法这样做。下面是我的设计代码。请帮助我 <asp:GridView ID="Docgrid" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" runat="server" AutoGenerateColumns="false" BorderStyle="None" GridLines="
<asp:GridView ID="Docgrid" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
runat="server" AutoGenerateColumns="false" BorderStyle="None" GridLines="None">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="chkRow" GroupName='docid' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id" HeaderText="DocId" ItemStyle-Width="50" />
<asp:BoundField DataField="DocName" HeaderText="DocName" ItemStyle-Width="50" />
<asp:BoundField DataField="DocType" HeaderText="DocType" ItemStyle-Width="50" />
<asp:BoundField DataField="Size" HeaderText="Size" ItemStyle-Width="50" />
<asp:BoundField DataField="UploadedBy" HeaderText="UploadedBy" ItemStyle-Width="50" />
<asp:BoundField DataField="Status" HeaderText="Status" ItemStyle-Width="50" />
<asp:TemplateField HeaderText="UpdatedBy" ItemStyle-Width="50">
<ItemTemplate>
<asp:Label ID="UpdatedBy" runat="server" Text='<%# Eval("UpdatedBy") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在这里,您可以使用Radiobuttonlist选择其中一项
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem>Option 1</asp:ListItem>
<asp:ListItem>Option 2</asp:ListItem>
<asp:ListItem>Option 3</asp:ListItem>
</asp:RadioButtonList>
选择1
选择2
选择3
将组的所有单选按钮放在容器对象中,如面板
或组框
。正如建议的那样
通常,radiobutton在分组时默认只接受一个选择。但是如果仍然存在问题,可以使用布尔控制变量(例如bool isAnySelected
)并实现一个监听器,用于单选按钮的检查。选择其中一项后,如果变量为false
则查找变量,使变量为true
。如果变量已为true
,请取消选中单选按钮。尝试此操作-
新的{@id=kk}应该是新的{@id=kk,Name=“grp”},以防止单选按钮的多次选择。请尝试下面的方法
按如下所示更改您的单选按钮
<asp:RadioButton ID="chkRow" GroupName='docid' runat="server" onclick = "RadioCheck(this);" />
添加下面的javascript
<script type = "text/javascript">
function RadioCheck(rb) {
var gv = document.getElementById("<%=Docgrid.ClientID%>");
var rbs = gv.getElementsByTagName("input");
var row = rb.parentNode.parentNode;
for (var i = 0; i < rbs.length; i++) {
if (rbs[i].type == "radio") {
if (rbs[i].checked && rbs[i] != rb) {
rbs[i].checked = false;
break;
}
}
}
}
</script>
功能无线电检查(rb){
var gv=document.getElementById(“”);
var rbs=gv.getElementsByTagName(“输入”);
var row=rb.parentNode.parentNode;
对于(变量i=0;i
解决此问题的最简单方法是在属性窗口中为所有单选按钮设置组名。在我的例子中,我将GroupName设置为“A”。将相同的GroupName也设置为“所有单选按钮”属性。然后运行代码:)
我希望这可能会有所帮助。您能为gridcontrol这样做,并给我举个例子,说明如何在网格视图中使用radiobutton列表吗?如果我在设计代码中添加此脚本,效果会很好。我想在项目中的任何.js文件中添加此方法,就像它位于“./AllJavaScript/form1.js”一样因此,在这种情况下,在脚本中而不是
,您需要使用网格的实际ID,该ID是以html生成的。我在设计代码中使用了类似于javascript的javascript,我更改了我的radiobutton标记,但它与我使用的方式不同。。请给我解决方案,但我如何知道html生成的id?