Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止单选按钮进行多次选择?_C#_Asp.net - Fatal编程技术网

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?