解决GridView中嵌入CheckBox事件无法响应的问题

今天在一个项目中的某个页面内添加了一个GridView表控件,其中一个字段为模板列,放入了一个CheckBox复选框控件,我希望用户在选择复选框时能激发它的CheckedChanged事件,从而进行数据库的操作,代码如下:

ASPX页面代码:

<asp:GridView ID="gridCursor" runat="server" CssClass="Grid" Width="90%"  
                AutoGenerateColumns="False" onrowdatabound="gridCursor_RowDataBound"
 
                DataKeyNames="学科代码,状态">

                
<Columns>
                    
<asp:BoundField DataField="学科代码" HeaderText="学科代码" />
                    
<asp:BoundField DataField="学科名称" HeaderText="学科名称" />
                    
<asp:TemplateField HeaderText="状态">
                        
<ItemTemplate>
                            
<asp:CheckBox ID="chkValid" runat="server" AutoPostBack="True"  
                                oncheckedchanged="chkValid_CheckedChanged" />

                        
</ItemTemplate>
                    
</asp:TemplateField>
                
</Columns>
            
</asp:GridView>

后台CheckedChanged事件的代码:

protected   void  chkValid_CheckedChanged( object  sender, EventArgs e)
    {
        CheckBox checkbox 
=  (CheckBox)sender;
        GridViewRow row 
=  (GridViewRow)checkbox.NamingContainer;
        
string  codeCursor  =  gridCursor.DataKeys[row.RowIndex][ " 学科代码 " ].ToString();
        
if  (checkbox.Checked)
            sysSqlRunner.isDone(
" update educa_bas_course set status=1 where code=' "   +  codeCursor  +   " ' " );
        
else
            sysSqlRunner.isDone(
" update educa_bas_course set status=0 where code=' "   +  codeCursor  +   " ' " );
    }

程序虽然写好了,可以正确编译运行,但奇怪的是CHECKBOX的CheckedChanged事件确怎么也触发不了,在网上找了很多类似问题的解答都无效,最后找到一篇文章说需要把GRIDVIEW的EnableViewState设为false才行,结果一试,果然可以触发CheckedChanged事件了。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值