Gridview 表头加入checkbox的方法

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

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

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

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

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

问题1、

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

                <asp:TemplateField HeaderText="是否购买">
                    <EditItemTemplate>
                        <asp:DropDownList ID="DropDownList1" runat="server" DataTextField=<%# Bind("IsBuy") %>>
                            <asp:ListItem  Text="购买" Value="1" ></asp:ListItem>
                            <asp:ListItem  Text="自备" Value="0" ></asp:ListItem>
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <ItemStyle HorizontalAlign="Center" Width="80px" />
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("IsBuy") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
   第一做asp.net项目一开始当然什么也不懂,在网上找不到帮助这号盯着上面的代码发呆,发呆的过程中我发现里面有<EditItemTemplate><ItemTemplate> ,能不能添加Header之类的标签呢,试一下吧,于是添加了下面的子标签
                    <HeaderTemplate>
                        <asp:CheckBox ID= "CbHeadIsBuy" runat ="server" Text = "显示购买" OnCheckedChanged="CbHeadIsBuy_CheckedChanged"/>
                    </HeaderTemplate>
这下checkbox是出来了。下面的问题也出来了。

问题2、

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

问题3、

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

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

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

                        <asp:CheckBox ID= "CbHeadIsBuy" runat ="server" Text = "显示购买" AutoPostBack="true" OnCheckedChanged="CbHeadIsBuy_CheckedChanged" Checked=<%# Convert.ToBoolean(HfCheckIsBuy.Value) %>/>

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值