Gridview 表头加入checkbox的方法

在近在做一个Asp.net项目,想在GridView的表头中加入一个checkbox来过滤表中的数据。没想到就这么个小小的功能还遇到了一大堆的问题:

(1)、在数据行中加入checkbox倒是很简单,但在网上找了半天,就是找不到如何加入到表头。

(2)、无法触发checkbox的CheckedChanged事件,偌大的网络就是没有答案。

(3)、这个问题最让我纳闷,checkbox硬是勾选不上,对于这样的问题网络上更是没有留下一丝痕迹。

   这样的问题对于我一个第一次做asp.net项目的菜鸟来说,确实比较难呀,但经过我的不懈努力还是被我解决了,兴奋之余想到给同样苦闷着的同志们分享:

问题1、

       把这一列转化为TemplateField后,aspx页面源码会生成如下代码

               
                   
                        >
                           
                           
                       

                   

                   
                   
                       
                   

               

   第一做asp.net项目一开始当然什么也不懂,在网上找不到帮助这号盯着上面的代码发呆,发呆的过程中我发现里面有 ,能不能添加Header之类的标签呢,试一下吧,于是添加了下面的子标签
                   
                       
                   

这下checkbox是出来了。下面的问题也出来了。

问题2、

    OnCheckedChanged事件不能触发呀。又在网上到处寻找,好像从来没人这样做似的,根本找不到答案,也别笑话我们这些菜鸟,MSDN的编排方式确实很不适合我们中国人的使用习惯,没办法了只好又发呆,突然想起以前做DropDownList的时候有个什么AutoPostBack的属性,加进去设成true试一试,哎呀!NND,果真就好了,看来是的好好看本asp.net本质方面的书好好研究一下了。(这个问题让我发呆的另一个原因是,第一次使用Checkbox,GridView的复杂性,也让我迷失了方向)。

问题3、

对于第3个问题我只给出原因和我的解决方法,

原因:checkbox硬是勾选不上是应为我在OnCheckedChanged方法中调用了GridView的DataBin方法,这个方法始终使Checkbox的checked值为初始值。

   下面是Checkbox标签的最终编码:

                        />

绑定一个HiddenField到checkbox的checked属性。我知道我这个方法不是最好的。希望有朋友给出更好的解决方案。

 

你可能感兴趣的:(Gridview 表头加入checkbox的方法)