GridView中的RadioButton列之间不能互斥

C#winform不同容器中RadioButton实现互斥 本文讲解winform不同容器中RadioButton实现互斥实现方法。 阅读详情
GridView中的RadioButton列之间不能互斥

GridView中的RadioButton列与CheckBox列
GridView拥有大量的内置功能,可以使用不同的默认filed来放置显示诸如TextBox、Buttos等等控件,支持模板是GridView的最大的功能,可以添加额外的、GridView没有的功能,例如RadioButton列。
RadioButton可以让用户只选中一列,而CheckBox可以选中多列。
可能首先想到的GridView中不包含有RadioBox列,是在ItemTemplate中添加RadioBox列,好像不行,这些RadioBox不会相互排斥,最终是用户可以选中多列。
代码段1:
<asp:GridView ID="RadioCheck" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
     <Columns>
         <asp:TemplateField HeaderText=".">
             <ItemTemplate>
                 <asp:RadioButton ID="btnRadio" runat="server" GroupName="ProductGroup" />
             </ItemTemplate>
         </asp:TemplateField>
         <asp:BoundField DataField="ProductName" HeaderText="ProductName" />
         <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
     </Columns>
</asp:GridView>

设置了GroupName:作用在于让RadioButton在一个组里,产生互斥的效果,只能选中一个,但这样的效果却是能选中多个值,如图Radio1.jpg

也就是说RadioButton没有起到要的作用,没有互斥性,查看源代码,可以发现问题:
<input id="RadioCheck_ctl02_btnRadio" type="radio" name="RadioCheck$ctl02$ProductGroup" value="btnRadio" />
<input id="RadioCheck_ctl03_btnRadio" type="radio" name="RadioCheck$ctl03$ProductGroup" value="btnRadio" />
........
<input id="RadioCheck_ctl10_btnRadio" type="radio" name="RadioCheck$ctl10$ProductGroup" value="btnRadio" />,上面的RadioButton根本没有在一个组里面,GroupName也起不了作用。
解决方法:
1.移除RadioButton控件,换成Literal控件,ID为RadioButtonMarkup
2. 为GridView的RowCreated事件创建事件,RowCreated事件如下:只要在GridView中新增一行数据,就触发 RowCreated事件,不用RowDataBound事件的原因是:只有当数据明确绑定到控件中才引发RowDataBound事件。处理如下:在每一行记录中,编程引用Literal控件,然后在其Text属性里面声明代码,创建RadioButton,name值为ProductGroup,id 为RowSelectX,X为index值,value值也为index值。

protected void Product_RowCreated(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
   Literal output = e.Row.FindControl("RadioButtonMarkup") as Literal;
   output.Text = string.Format(@"<input type="radio" name="ProductGroup"" " + @"id="RowSelector{0}"value="""value{0}",e.Row.RowIndex);
}
}

当然这是后台使用的方法.
还有一种就是用Javascript脚本事件
.aspx

    <script type="text/javascript">
    var last=null;
    function judge(obj)
    {
      if(last==null)
      {
         last=obj.id;
      }
      else
      {
        var lo=document.getElementById(last);
        lo.checked=false;
        last=obj.name;
      }
      obj.checked="checked";
    }
    </script>

.cs 页面里在gridview的 RowDataBound 事件里
   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            RadioButton rb = (RadioButton)e.Row.FindControl("rdoChoose");
            if (rb != null)
            {
                rb.Attributes.Add("onclick", "judge(this)");
            }
        }
    }

注意:如果你有RadioButton同时还有别的JS事件,请一定要追加上,否则就不能正确显示了.我比较偏爱JS这种方法,速度快,而且试过了放在UpdatePannel里也可以.没有过多的复杂测试.

mybaits-plus通用CRUD详解及代码案例 文章目录mybaitsplus通用CRUD插入操作方法定义测试用例mybaitsplus主键生成策略设置自增主键设置输入主键:UUID:ID_WORKER_STR:ID_WORKER:更新操作根据id更新方法定义:方法步骤根据条件更新方法定义:更新步骤:根据条件更新(可以更新NULL)删除操作根据id删除方法定义:删除步骤:根据 entity 条件删除方法定义:删除步骤:根据ID 批量删除方法定义:删除步骤:查询操作根据id查询方法定义:查询步骤:根据id批量查询方法定义:查询步骤:根据 entity 条件 阅读详情

相关推荐

Visual Studio报错TRK0005找不到CL.exe?三步彻底解决环境变量问题

本文详细解析了Visual Studio报错TRK0005找不到CL.exe的根本原因,并提供了三步彻底解决环境变量问题的方案。从验证安装完整性到配置永久环境变量,再到注册表级修复,帮助开发者建立健壮的开发环境配置体系,确保编译链稳定运行。

weixin_30839881的博客 459

radioGroup中radiobutton不能互斥问题

最近在写有关兼职项目时,用到Radiogroup 来包含Radiobutton ,这本应该是最简单的事情,结果硬是弄了半个小时,radiobutton 老是到不到相互排斥的效果,在查阅相关资料后才发现,radiobutton 要想达到点击后相互排斥的效果,需要给每一个radiobutton赋一个ID,否则是不会有互斥效果的,活生生浪费半小时

to_perfect的博客 3238

保姆级!n8n 公众号自动化:从 0 搭 “写文案 + 生图 + 发草稿” 全流程

【摘要】本文介绍如何利用n8n搭建全自动公众号内容发布流程,涵盖AI文案生成、封面图制作到自动发布的全链路解决方案。通过对接OpenRouter大模型、阿里云百炼生图API及微信官方接口,实现从内容创作到发布的自动化。重点包括:1)n8n微信节点安装配置;2)大模型API授权与提示词优化技巧;3)图片生成与格式转换处理;4)公众号接口授权注意事项;5)草稿自动生成参数设置要点。特别提醒首次配置时需关闭自动发布功能以检查效果,避免格式错误导致发布失败。该方案无需复杂编程,适合运营人员快速搭建自动化内容生产流程

Jacket0603的博客 1594

【C#笔记4】 RadioButton与CheckBox

同一个容器下的多个RadioButton之间互斥,只能选择其中一个。来自不同容器的RadioButton 对象是相对独立的。 多个checkBox之间的选择是互相独立的,互不影响。

whalefall 741

ThinkBook 16p 2024 BIOS降压定频实战:从解锁CFG Lock到AC Loadline调优

高性能笔记本在满载时频繁撞上温度墙,通常源于固件层默认电压冗余过大,而系统级降压工具又受限于CFG Lock锁定。要根治问题,需要从BIOS固件层面理解电压管理机制——AC/DC Loadline参数控制着CPU在不同负载下的电压请求,通过修改这些负载线值可以安全降低电压,解锁CFG Lock后还能让XTU、ThrottleStop等软件调参工具恢复可用。这种BIOS级调优在工程实践中广泛用于改善散热、稳定频率、压降风扇噪音,尤其适用于联想ThinkBook 16p 2024与拯救者Y9000P等采用HX平

weixin_32496547的博客 388

ROS自定义地图实战:从CAD到导航的完整流程

本文详细介绍了如何将CAD图纸或手绘草图高效转换为ROS机器人可直接使用的导航地图。通过解析PGM与YAML标准格式,提供从图像处理、尺度校准到集成AMCL与move_base导航栈的完整实战流程,帮助开发者跳过繁琐的SLAM建图,实现快速、精准的自定义地图部署。

weixin_29083475的博客 496

(转载)MFC -- radio button 的用法

本文转自http://cao416451347ming.blog.163.com/blog/static/1154556162009102795016258/ 先为对话框加上2个radio button,分别是Radio1和Radio2。 问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了? 关键是选上,“默认”只要放在OnInitDialog()...

weixin_30636089的博客 238

华为OD机试 - 幸运数字(Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 3776

GridView绑定radiobutton以后实现唯一选择,互斥

                                                                                                                                                                    是不能实现排斥的 因为radiobutton

椰子园 2435

ConvNeXt 改进 :ConvNeXt添加GnConv递归门控卷积,二次创新CNBlock结构 ,独家首发

视觉 Transformer 在多种任务中取得了显著的成功,这得益于基于点积自注意力的新空间建模机制。视觉 Transformer 中的关键因素——即输入自适应、长距离和高阶空间交互——也可以通过卷积框架高效实现。作者提出了递归门控卷积(Recursive Gated Convolution,简称 gnConv),通过门控卷积和递归设计执行高阶空间交互。该新操作具有高度的灵活性和可定制性,兼容各种卷积变体,并将自注意力中的二阶交互扩展到任意阶数,而不会引入显著的额外计算。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 235

晶闸管选型参数,结构原理,工艺与注意问题总结

闸管(Thyristor)是一种半导体开关器件,也被称为可控硅整流器(SCR, Silicon Controlled Rectifier)。它可以在高电压和大电流条件下工作,常被用于交流电的控制和整流。本文对晶闸管的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1284

使嵌套的在GridView里的radiobutton实现单选(VS2005)

这是我在开发过程中遇到的问题,应该算是比较常见的问题吧。开始以为只要设置一下GroupName就行了,但结果却不行。后面在优快云上看到了解决办法,先把它记下来。主要方法还是要结合脚本的。 在服务端给GridView添加如下方法: protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgs...

weixin_30919571的博客 130

YOLO11改进 | 卷积模块 | 轻量化GSConv替换普通的conv

yolo11,GSConv,卷积模块

kay_545 3956

Android组件式开发(2)——实现网格布局的RadioButton矩阵

**前言** 在Android中,我们一般通过RadioGroup来管理一组RadioButton 来达到 单选按钮的互斥效果。但是,有些需求中,需要完成N行N列这样的RadioButton组成的矩阵,但是我们的RadioGroup是一个耿直的LinearLayout,无法完成网格布局╮(╯▽╰)╭。所以,下面我就像大家来介绍一种实现网格布局的RadioButton的思路。 无图无真相, 先上一

a253664942的专栏 3544

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

GridView实现单选操作

  GridView实现单选操作 @ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" validateRequest="false"%>DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E

水上漂的专栏 1393

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

一文吃透 QML 各类组件:从继承关系属性信号 / 行为到实战用法全解析(之二)

一文吃透 QML 各类组件:从继承关系属性信号 / 行为到实战用法全解析(之二)

qianniulaoren的博客 1169

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ASP.NET控件

它自动生成一个表格,其中每行代表数据表的一行,每列代表数据表的一个字段。控件类似于ListBox,但它只显示一个下拉箭头和一个当前选中的选项。与复选框不同,单选按钮组中的选项是互斥的,即一次只能选择一个选项。控件用于比较用户输入的值与另一个值或另一个控件的值。例如,您可以验证两个文本框中的值是否相等,或验证一个值是否大于另一个值。控件用于在Web页面上重复显示一个模板的内容,每次迭代数据集的一行。它是一个非常灵活的控件,允许您自定义数据的显示方式。控件用于验证用户输入的值是否在给定的范围内。

weixin_59272777的博客 623

APP应用开发——阶段性总结3-7章

本文为作业所做,可作为学习用途

weixin_42551515的博客 1063

31.QRadioButton

这种按钮主要用来给用户在若干个选项中执行单选操作 目录 1创建和基本设置 1.1创建RadioButton 1.2添加文本setText() 1.3添加图标setIcon() 1.4更改图标大小setIconSize() 1.5设置默认状态 setChecked() 1.6设置快捷键 1.6.1文本前加 & 1.7setShortCut() 1.8取消互斥性 setAutoExclusive() 2信号 3多组互斥问题 3....

potato123232的博客 3699

C#:单选框和单选框互斥

添加单选按钮控件。 选择工具箱 -》 公共控件 -》 RadioButton(单选按钮控件),单击选择到窗体中。在单选按钮的属性窗口中,更改单选按钮文本(Text 栏),文字大小(Font)等参数。 注意:发送模式下的两个单选按钮为一组,接收模式下的单选按钮为另一组。为了发送和接收单选按钮相互独立,需将其划分组别,因此要引入容器控件。选择工具箱 -》 容器 -》Panel(容器控件),将同组别单选按钮划分在一起。先放置容器控件,再往其中填入单选按钮控件,不然会被覆盖。...

默铭 4647

RadioGroup中RadioButton不能互斥

1,项目需要动态的添加RadioButton,看了一下RadioGroup和RadioButton的使用,觉得很简单,只需要将RadioButton加入RadioGroup中即可,随着功能的逐步完善,需要显示某个默认的选项是出现了问题,当调用RadioButton.setChecked(true)显示默认选项后发现RadioGroup中的RadioButton不能互斥,选中的RadioButton

lzqjfly的专栏 1万+
上一篇: ashx文件和HttpHandler
peterlinxt
博客等级 码龄17年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值