扩展GridView之添加单选列

背景:实现GridView的单选列,传统的做法应该是新增模板列,然后添加RadioButton,客户 端实现单选,后台遍历读取选中行数据。

第一:添加模板列,加入RadioButton。为了取值方便,我把记录的主键放在HiddenField中 保存。

<asp:TemplateField meta:resourcekey="TemplateFieldResource3">
     <ItemTemplate>
         <asp:RadioButton ID="rbChecked"  runat="server" onclick="rbCheck(this.id)" />
       <asp:HiddenField ID="hidID" Value ='<%# Eval("ID") %>' runat="server" />
      </ItemTemplate>
  </asp:TemplateField>

发现问题:生成的选择列并没有单选功能,解决过程:

1:设置RadionButton的GroupName,结果证明是不可行的。

2:RadionButton生成的html为input,可不可以设置name属性呢,结果也是不可行,因为 GridView生成数据行的时候,会修改这个name值,使得最终的name值各不相同。

解决方案:在RadioButton发生客户端点击事件时,动态设置其它选择按钮的选中状态。 例如上文中的onclick="rbCheck(this.id)"。这样可以实现单选的效果。

function rbCheck(obj)
{
  var gv = $("<%=this .GridView1 .ClientID  %>");
       //被选择的个数
       var num=0;
         for(i = 1;i < gv.rows.length; i++)
         {
             var inputArray = gv.rows[i].getElementsByTagName ("input");
             for(var j=0;j<inputArray.length;j++)
             {
                 if(inputArray[j].type=='radio')
                 {
                   if(inputArray[j].id==obj)
                   {
                        inputArray [j].checked=true;

                   }
                   else
                   {
                        inputArray[j].checked=false;
                   }
                  }
             }
          }
}

时间: 2024-09-08 11:58:48

扩展GridView之添加单选列的相关文章

GridView 动态添加 数据列,绑定方法 (1/2)

gridview 动态添加 数据列,绑定方法 通过继承 gridview 并且重载  createcolumns() 添加自己想要的 column,根据扩展属性中的键值对生成column. 通过继承 bouldfield,并且重载 initializedatacell() 和 getvalue() 实现自己希望的绑定方法,实现可以基于方法的数据绑定,从而可以将扩展属性中的键值绑定到对应的cell中. gridview 是asp教程.net中表格数据显示控件中的一种,可以支持数据绑定,绑定的数据源

控件gridview中添加的列可不可看做是他的一个单元各cell

问题描述 控件gridview中添加的列可不可看做是他的一个单元各cell 解决方案 解决方案二:相当于最后生成的表格中的<td></td>解决方案三:差不多都那个意思gridview生成的就是个TABLE解决方案四:<Columns></Columns>

关于gridview动态添加模版列分页后模版列中控件消失的问题

问题描述 我动态添加了GridView中的所有列,包括一个checkbox模版列可是,分页后,模版列的控件消失了,请问这个问题如何解决,已经弄了一天了. 解决方案 解决方案二:为什么没人回答啊?这个问题很简单吗?解决方案三:我再顶起!我再顶起!

ASP.NET 2.0数据教程之五十二:为GridView控件添加Checkboxes列

返回"ASP.NET 2.0数据教程目录" 导言: 在前面的教程里我们探讨了如何为GridView控件添加radio buttons列.当用户最多只能选择一项数据时,我们可以在用户界面里添加radio buttons列,而有时候,我们需要选择任意多项数据.比如,基于Web的邮箱客户 端列出了一系列的邮件,及一列checkboxes,用户可选择任意封邮件并执行相同 的操作,比如移动到另一个文件夹或将之删除. 在本教程,我们将探讨如 何添加checkboxes列,以及发生页面回传后如何确定

扩展GridView实现多选、选择行、选中变色等

本文适合asp.net初学者阅读,高手达人可以无视.主要功能:a.隔行色(颜色可自定义)b.点击行任意位置选择行c.点击已选中行任意位置取消选择d.选中行变色(颜色可自定义)e.多选全选功能f.添加双击响应事件GridView控件功能非常强大,但在具体应用中很多时候无法满足特殊需求.例如我前段时间做自己网站(网站制作学习吧www.web2bar.cn).在编写后台管理版块期间.由于是文章站,列表页面会比较多.每个列表显示基本一样,功能包括:单击选择一行:单击已经选择的行实现取消选择:被选中的行变

c#Gridview动态增加新列求助

问题描述 用VS2010做一个c#的界面这是GridView已经做好的页面,但是不是动态绑定,还有要求修改成下面格式的页面,还要求动态绑定,小弟实在没辙了,请各路大神帮忙提供个思路~或者方法就行​ 解决方案 解决方案二:如何在GridView中动态添加模板列ICollectionCreateDataSource(){DataTabledt=newDataTable();//创建一个DataTable对象DataRowdr;//定义框架dt.Columns.Add(newDataColumn("i

扩展gridview的导出excel功能乱码问题的解决

在以前的手把手教你如何扩展GridView之自带Excel和Word导出的实现,会出现不规律的乱码现象,查阅了很多资料,比如有人说将编码改为UTF-7,结果在excel2007中,utf-7编码的更是乱的不成样子?导出乱码的代码检查了无数遍,编码更给为utf-8,gb2312,utf-7都试过了,而且通过httpwatch检查到同样输出到客户端的内容,产生的excel却一个乱码,一个不乱,大白天见了鬼了,后来经过反复尝试,发现在代码中添加下面一段,就再也没出现过乱码的情况,大概用了有1个多月了吧

怎么样从gridview中获取一列数据的值?再怎么把获得的数据插入到另一个表中?没分了,还望各位大哥帮帮忙!!谢谢

问题描述 单击gridview控件外部的一个按钮,怎么获取gridview中的一列数据?获得的数据怎么插入到另一个表中,比如说那个表名是a 解决方案 解决方案二:FindControl获取RowIndex,再cells[i].text解决方案三:你根据ID查询出来值,然后再把值添加到a表这样就可以了吧!解决方案四:DataTabledt=newDataTable();dt.Columns.Add("col1");foreach(GridViewRowgvrinGridView1.Row

手把手教你如何扩展GridView之自动排序篇

最新重构源码下载:打造0代码全自动GridView-天具神力            看到这两天园子里面"强奸"GridView的兄弟们可真不少,自己也手痒,也凑凑热闹,写得好,大家鼓励鼓励,写的不好,大家多多指教. 首先说说本文要实现的目的,大家都知道GridView支持排序,但是每次排序的时候,都需要给GridView添加OnSorting事件,这么繁琐而费力,作为世界上最最聪明的程序员的我们难道没有抱怨么?废话少说,不才想到了一种解决这个问题的方法,可以让大家一劳永逸.下面就让兄弟