gpt4 book ai didi

asp.net - 在 gridview 控件中使用单选按钮

转载 作者:行者123 更新时间:2023-12-05 01:15:02 29 4
gpt4 key购买 nike

我有一个 gridview 控件,其中使用存储过程显示数据。网格有三列,第一列包含单选按钮。一般的想法是用户应该只能从(在我的例子中)5 个单选按钮中选择一个单选按钮。

当前功能的问题是我可以同时选择所有单选按钮。我尝试使用“groupname”属性对单选按钮进行分组。它没有用。

我该如何解决?

这里是gridview控件

<asp:GridView UseAccessibleHeader="true" ID="GridView1" CssClass="top" EmptyDataText="" HeaderStyle-CssClass="griditem_heading" HeaderStyle-BackColor="" runat="server" AllowSorting="True" AutoGenerateColumns="False" CellPadding="0" Width="100%">
<EmptyDataRowStyle />
<EmptyDataTemplate>
<table cellspacing="0" cellpadding="0" border="0" id="dgd_Clinic_empty" width="100%">
<tr>
<td valign="Middle" align="Center" bgcolor="#cce57f" class="griditem_1">
<span class="smalltableheading">&nbsp;&nbsp;&nbsp;</span>
</td>
<td valign="Middle" align="Center" bgcolor="#cce57f" class="griditem_1">
<span class="smalltableheading">Clinic Name</span>
</td>

<td valign="Middle" align="Center" bgcolor="#cce57f" class="griditem_1">
<span class="smalltableheading">Open</span>
</td>
</tr>
<tr>
<td colspan="8" align="Center">
<span class="Content"><b>No matching records were found.</b></span>
</td>
</tr>
</table>
</EmptyDataTemplate>
<Columns>
<asp:TemplateField HeaderText="" HeaderStyle-CssClass="griditem_heading" ItemStyle-CssClass="griditem_1"
HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle" SortExpression=""
Visible="True" ItemStyle-VerticalAlign="Middle" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label for="rad1_1" ID="rad1_1" runat="server" Visible="false"> </asp:Label>
<asp:RadioButton ID="rdoClinicId" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Clinic Name" HeaderStyle-CssClass="griditem_heading"
ItemStyle-CssClass="griditem_1" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle"
SortExpression="clinic_name" Visible="True" ItemStyle-VerticalAlign="Middle" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lbl_Grd_Clinic_Name" runat="Server" Text="" ToolTip="" Width="" Height=""
Style="" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Open" HeaderStyle-CssClass="griditem_heading"
ItemStyle-CssClass="griditem_1" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Middle"
SortExpression="Open" Visible="True" ItemStyle-VerticalAlign="Middle"
ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lbl_Grd_Open" runat="Server" Text="" ToolTip="" Width="" Height="" Style="" />
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>

最佳答案

由于 gridview 被呈现为表格元素,在运行时它会为每个单选按钮分配不同的“名称”,因此 GroupName 将不起作用。

但是调用 JavaScript 函数来验证单选按钮一次选择一个单选按钮,而不是在 gridview 之外为多个单选按钮提供相同的组名。

javascript函数设置当前选中的radio button的行样式判断该行被选中然后循环gridview中的radio button然后取消选中之前选中的radio button并将行样式设置回它的默认值。

看下面的代码,

JavaScript 部分,

 <script language="javascript" type="text/javascript">
function CheckOtherIsCheckedByGVID(rb) {
var isChecked = rb.checked;
var row = rb.parentNode.parentNode;

var currentRdbID = rb.id;
parent = document.getElementById("<%= GridView1.ClientID %>");
var items = parent.getElementsByTagName('input');

for (i = 0; i < items.length; i++) {
if (items[i].id != currentRdbID && items[i].type == "radio") {
if (items[i].checked) {
items[i].checked = false;
}
}
}
}
</script>

Aspx 部分,

     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton runat="server" ID="RadioButton1" onclick="javascript:CheckOtherIsCheckedByGVID(this);">
</asp:RadioButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

注意: 此处使用的 onclick 是 html 属性,将出现在 visual studio 的 intellisense 属性中。因此,只需按照我的代码中提供的方式输入即可。

我对此进行了测试并且非常适合我。

希望这对你有用..

关于asp.net - 在 gridview 控件中使用单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627634/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com