DataGrid中使用CheckBox的CheckedChanged事件

出处:http://i.cn.yahoo.com/liahtobjtosh/blog/p_93/

使用DataGrid的过程中常会用到CheckBox控件,并使用它的CheckedChanged事件。使用如下:

1、CheckBox控件需要设置AutoPostBack="true"

<asp:CheckBox id="chbIsActive" runat="server" AutoPostBack="true"></asp:CheckBox>

2、CheckBox控件的事件须在DataGrid的ItemCreated定义才能生效

        private void grdStructure_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
            if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
               
                CheckBox chbIsActive = e.Item.FindControl("chbIsActive") as CheckBox;
                chbIsActive.CheckedChanged += new EventHandler(chbIsActive_CheckedChanged);
            }
        }

3、编写事件代码

        private void chbIsActive_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chbIsActive = (CheckBox)sender;

            Guid structureUID = new Guid(chbIsActive.Attributes["StructureUID"]);
            bool isActive = chbIsActive.Checked;

            IPMStructureManager manager = PMStructureManagerFactory.GetInstance();
            manager.SetActive(structureUID, isActive);

            this.Binding();
        }

当DataGrid中某行的CheckBox发生变化时获得这行的行号

首先将CheckBox1的AutoPostBack属性设置为true

  private void CheckBox1_CheckedChanged(object sender, EventArgs e)
  {   
   DataGridItem t = (DataGridItem)((CheckBox)sender).Parent.Parent; 
   int i = t.ItemIndex;
   CheckBox tCheckBox1 = (CheckBox)sender;
   if(tCheckBox1.Checked)
    {     
     DataTable tempTable = (DataTable)Session["eduGrid"];
     Session["Group"]=tempTable.Rows[i]["groupid"];
     Session["PassScore"]=tempTable.Rows[i]["passgrade"];
     Session["Title"]="学习中心"+Session["Group"].ToString()+"在"+tempTable.Rows[i]["ValidDuration"]+"的考试";
     this.lbTestGroup.Text = Session["Group"].ToString();
     this.lbPassScore.Text = Session["PassScore"].ToString();
     this.txTestTitle.Text = Session["Title"].ToString();
    }           
  }

其他解决方案
如何单击在DataGrid中绑定的CheckBox时触发一个事件
http://www.010gc.cn/2007220/J22027088.shtml
DataGrid里CheckBox事件
http://www.cnblogs.com/wf5360308/articles/427744.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值