GridView中CheckBox单击事件(oncheckedchanged)

本文介绍如何在ASP.NET的GridView控件中使用CheckBox实现行选中时背景色变化的功能。通过设置CheckBox的AutoPostBack属性并在后台代码中根据CheckBox的状态改变所在行的背景颜色。

在GridView中加入 CheckBox控件,想通过单击选中出现如下图所示效果:

 

具体做法是:

前台GV部份省掉。只加关键的CheckBox部份。

view plaincopy to clipboardprint?
<asp:CheckBox ID="ItemCheckBox" oncheckedchanged="ItemCheckBox_CheckedChanged" AutoPostBack="true" runat="server" /> 
<asp:CheckBox ID="ItemCheckBox" oncheckedchanged="ItemCheckBox_CheckedChanged" AutoPostBack="true" runat="server" />

此代码需要注意的是:

AutoPostBack="true"

此句的效果是选中后才会执行后台的代码。

后台代码:C#

view plaincopy to clipboardprint?
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
//单独选中   
    protected void ItemCheckBox_CheckedChanged(object sender, EventArgs e)   
    {   
        CheckBox chk =(CheckBox)sender;   

        //以下两句为 选中背景色       第一种方法通过 Parent 获得GridViewRow   
        DataControlFieldCell dcf = (DataControlFieldCell)chk.Parent;    //这个对象的父类为cell   
        GridViewRow gr = (GridViewRow)dcf.Parent;                   //cell的父类就是row,这样就得到了该checkbox所在的该行   

        //另外一种NamingContainer获得 GridViewRow   
        int index = ((GridViewRow)(chk.NamingContainer)).RowIndex;    //通过NamingContainer可以获取当前checkbox所在容器对象,即gridviewrow   

        string strsql="";   
        string qtable = GVOpen.Rows[index].Cells[4].Text.Trim();   
        string qid = GVOpen.Rows[index].Cells[1].Text.Trim();   
           

        if (chk.Checked)   
        {   
            gr.BackColor = System.Drawing.Color.Green;   
                    }   
        else 
        {   
            gr.BackColor = GVOpen.RowStyle.BackColor;   
        }   
    }

转载于:https://www.cnblogs.com/yubufan/p/7385308.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值