在开发的一个网站的后台中,用到这么一个功能:
1)在GridView中绑定一个CheckBox;
2)当选中/取消选中CheckBox时,激发后台表中对应数据操作或者设置对应标志;
在 protected void CheckBox1_CheckedChanged(object sender, EventArgs e){} 中,通过获取sender的parent来进行操作,代码为:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1
CheckBox chk
=
(CheckBox)sender;
2 DataControlFieldCell dcf = (DataControlFieldCell)chk.Parent;
3 GridViewRow gvr = (GridViewRow)dcf.Parent;
4 try
5 {
6 if (chk.Checked)
7 {
8 model.NewsId = NewsID; // model为映射表的实例化对象
9 model.AddressId = int .Parse(gvr.Cells[ 1 ].Text); // 此处宏来获取GridView中的某一个Cell的值;
10 model.Status = 1 ;
11 model.Memo = "" ;
12 bll.Add(model); // 执行一个添加操作.
13 }
14 else
15 {
16 strsql = " delete from biao1 where NewsId= " + NewsID + " and AddressId= " + int .Parse(gvr.Cells[ 1 ].Text);
17 DbHelper.ExecuteSql(strsql);
18 }
19 }
20 catch (Exception ex)
21 {
22 // throw(this, ex.ToString());
23 }
2 DataControlFieldCell dcf = (DataControlFieldCell)chk.Parent;
3 GridViewRow gvr = (GridViewRow)dcf.Parent;
4 try
5 {
6 if (chk.Checked)
7 {
8 model.NewsId = NewsID; // model为映射表的实例化对象
9 model.AddressId = int .Parse(gvr.Cells[ 1 ].Text); // 此处宏来获取GridView中的某一个Cell的值;
10 model.Status = 1 ;
11 model.Memo = "" ;
12 bll.Add(model); // 执行一个添加操作.
13 }
14 else
15 {
16 strsql = " delete from biao1 where NewsId= " + NewsID + " and AddressId= " + int .Parse(gvr.Cells[ 1 ].Text);
17 DbHelper.ExecuteSql(strsql);
18 }
19 }
20 catch (Exception ex)
21 {
22 // throw(this, ex.ToString());
23 }
附带:
如果要遍历GridView中的CheckBox是否选中,并做相应操作,则:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1
for
(
int
j
=
0
; j
<
GridView1.Rows.Count; j
++
)
2 {
3 CheckBox chbox = GridView1.Rows[j].FindControl( " CheckBox1 " ) as CheckBox;
4 if (chbox.Checked)
5 {
6 model.NewsId = NewsID; //
7 model.AddressId = int .Parse(GridView1.Rows[j].Cells[ 1 ].Text);
8 model.Status = 1 ;
9 model.Memo = "" ;
10 bll.Add(model);
11 }
12 }
2 {
3 CheckBox chbox = GridView1.Rows[j].FindControl( " CheckBox1 " ) as CheckBox;
4 if (chbox.Checked)
5 {
6 model.NewsId = NewsID; //
7 model.AddressId = int .Parse(GridView1.Rows[j].Cells[ 1 ].Text);
8 model.Status = 1 ;
9 model.Memo = "" ;
10 bll.Add(model);
11 }
12 }