使用DataGrid控件添加单选框时,如果直接在模板中加入RadioButton服务器控件,由于.Net的机制,无法实现单选功能,以下两种方法可以实现:

第一种方法使用Radio标签来实现

模板列使用html控件Radio标签来绑定

HTML代码

<asp:TemplateColumn HeaderText="是否列表显示">
  <ItemTemplate>
    <input id="radIsListShow" name="Attribute2" type="radio" value='<%# DataBinder.Eval(Container, "DataItem.SysNo") %>'  /><%# DataBinder.Eval(Container, "DataItem.Attribute2Name") %>
  </ItemTemplate>
</asp:TemplateColumn>

后台获取选择的值代码

int iSelectSysNo = AppConst.IntNull;//被选中的属性系统编号
//判断是否列表显示是否单选
if (Request.Form["Attribute2"] != null)
{
    iSelectSysNo = int.Parse(Request.Form["Attribute2"]);
}
//处理代码....

效果图:

第二种方法使用RadioButtonList实现

建议使用第一种方法,第二种方法在做样式上处理会比较麻烦,效果图有显示

html代码

<asp:TemplateColumn HeaderText="是否列表显示">
    <ItemTemplate>
        <asp:RadioButtonList ID="radIsListShow" runat="server" Width="100%"/>
    </ItemTemplate>
    <ItemStyle Width="120px" />
</asp:TemplateColumn>

DataBind之后增加代码

DataBind增加代码

#region 是否列表显示单选列功能

//将datagrid的第一列设置为模板列,并加入RadioButtonList 
//将第一列第一单元格的RowSpan设置为DataGrid的总列数 
gridOption.Items[0].Cells[0].RowSpan = gridOption.Items.Count;
for (int i = 1; i < gridOption.Items.Count; ++i)
{
    //从第二列开始隐藏第一个单元格
    gridOption.Items[i].Cells[0].Visible = false;  
}

//将第一列第一个单元格里的RadioButtonList按照DataGrid的总列数进行列添加
for (int i = 0; i < gridOption.Items.Count; ++i)
{
    Label lblSysNo = gridOption.Items[i].FindControl("lblSysNo") as Label;
    Label lblName = gridOption.Items[i].FindControl("lblName") as Label;
    ListItem ss = new ListItem(lblName.Text, lblSysNo.Text);
    ((RadioButtonList)gridOption.Items[0].Cells[0].Controls[1]).Items.Add(ss);
}

#endregion

获取选中的值代码

int iSelectSysNo = AppConst.IntNull;//被选中的属性系统编号
foreach (ListItem item in radIsListShow.Items)
{
    if (item.Selected)
    {
      iSelectSysNo = int.Parse(item.Text);
    }
}

效果图:当前鼠标是在第一行,第一样颜色有变,但是否列表显示这一列都变色了,因为它都是第一行中的控件。

转载于:https://www.cnblogs.com/leakey/archive/2011/01/15/1936346.html

DataGrid实现单选功能,将DataGrid绑定的单选钮放在一个组里相关推荐

  1. flex中dataGrid的编辑功能

    在flex的dataGrid中,很多情况下列是需要嵌入其他的控制的,比如:checkbox,combox等,此时需要利用dataGrid的如下功能: 1.datagrid编辑功能简介     当我们点 ...

  2. flex中dataGrid的编辑功能 精华

    from:http://blog.csdn.net/wuyan520/article/details/5469794 也是转载,源头未知. 在flex的dataGrid中,很多情况下列是需要嵌入其他的 ...

  3. 自定义GrildView实现单选功能

    首先看实现功能截图,这是一个自定义Dialog,并且里面内容由GrildView 绑定数据源,实现类似单选功能. 首先自定义Dialog,绑定数据源 自定义Dialog弹出框大小方法 最主要实现的就是 ...

  4. js checkbox复选框实现单选功能

    本文仅供学习交流使用,demo下载见文末 js checkbox复选框实现单选功能 <script type="text/javascript">$(":ch ...

  5. php实现贴吧功能,PHPCMS V9万能字段增加单选功能,实现多条房产信息调用1个开发商信息等效果...

    用过PHPCMS V9万能字段的朋友应该知道,万能字段是个非常强大的功能,基本上可以实现任何复杂的字段逻辑调用,比如调用相关文章.调用相关房产信息等等.作者在帮一个客户做房产网站项目开发的时候,需要实 ...

  6. Jquery全选单选功能

    Jquery全选单选功能 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="W ...

  7. elementui实现表格单选功能

    大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 前言 需求是这样的:用户单击购买产品的按钮时,会出现一个产品的列表,但是呢只能买一种产品,暂时不可以多选.效果如下所示: 原来做的是,单击前面的单选 ...

  8. jqGrid实现单选功能

    jqgrid默认没有提供单选功能,但是提供了多选功能(multiselect),因此可以通过隐藏多选按钮,每次选择的一条记录的时候重置一下选择列表的方式实现单选: 假设你的html部分代码如下: &l ...

  9. radio做选择题的单选功能

    radio做选择题的单选功能 前一段时间做了一个选择答题的一个功能,需求必须的是一个问题三个选项,还必须是单选,而且只能选择一个,在实现的过程中呢,踩了不少坑,今天呢给大家分享一下. 效果呢大概实这样 ...

  10. Linux多网卡绑定(bond)及网络组(team)

    Linux多网卡绑定(bond)及网络组(team)   很多时候,由于生产环境业务的特殊需求,我们需要对服务器的物理网卡实施特殊的配置,从而来满足不同业务场景下对服务器网络的特殊性要求.如高并发的网 ...

最新文章

  1. 11.11大促来袭,京东如何保障云安全?
  2. 成功解决AttributeError: module 'tensorflow.python.training.training' has no attribute 'SummaryWriter'
  3. Service Worker,Web Worker,WebSocket的对比
  4. 字典的修改,删除,查找,遍历操作
  5. python选择排序_Python实现选择排序
  6. Winform开发之SqlCommand常用属性和方法
  7. 方块方舟怎么自建服务器,方块方舟新版更新,玩家可自定义单机局域网数值
  8. 去除图片上文字的方法(6种)
  9. SQL server 2008R2 入门
  10. adress标签的使用
  11. 玩转扫雷(大战即将开始O(∩_∩))
  12. 微信朋友圈如何发已存的小视频
  13. 多wan口路由虚拟服务器,简单的多WAN路由器带宽聚合功能测试方案
  14. 固态继电器和可控硅的区别
  15. WPARAM 与 LPARAM
  16. 上海外国语计算机科学与技术,外国语|上海
  17. 0x000001b8指令引用的0x000001b8内存该内存不能为read
  18. 2014蓝桥杯本科B组C/C++第四题【史丰收速算】
  19. 【Java案例】为新员工分配部门
  20. 国外评论华为鸿蒙,华为鸿蒙在国外爆火!老外对其评价是亮点,网友:真长脸!...

热门文章

  1. android 时间函数 性能,Android 性能优化——启动时间优化
  2. 小度智能音箱维修点_进击的小钢炮!体验小度智能音箱大金刚
  3. element $prompt 输入类型密码_手把手教程 | 为你支招 安全保存账号和密码的两种方法...
  4. 三菱mode bus tcp通讯_微服务中的异步消息通讯和事件驱动,你了解多少?
  5. 【sklearn第六讲】特征提取(下)
  6. 应用机器学习(六):决策树
  7. 基于OpenCV的红绿灯识别代码解析
  8. Lecture 4:无模型预测
  9. “云时代架构”经典文章阅读感想十三
  10. ACM_栈的压入、弹出序列