GridView中怎么用checkbox

GridView中怎么用checkbox
比如一张表,一列是ID,一列是name,ID那行用checkbox显示,表格下面有一个删除按钮,选中一个checkbox就删除一条记录,还有下面还有一个checkbox用于全选,怎么实现的。。。。解决后追加30分,谢谢
1.aspx页面中
1.为gridview增加一个模板列








笑灶



2.加入script.


2.cs文件中
1.定义一个 你主键集合(如我的是Seq)
///
/// 获取或设置选中项的集合(记录Seq)
///

protected ArrayList SelectedSeqItems
{
get
{
return (ViewState["SelectedSeqItems"] != null) ? (ArrayList)ViewState["SelectedSeqItems"] : null;
}
set
{
ViewState["SelectedSeqItems"] = value;
}
}

2.定义迹升扒一个收集主键函数
///
/// 从当前页收集选中项的情况Seq
///

protected void CollectSelectedSeq()
{
ArrayList SelectedSeqItems = null;

if (this.SelectedSeqItems == null)
SelectedSeqItems = new ArrayList();
else

SelectedSeqItems = this.SelectedSeqItems;

for (int i = 0; i < this.GVDetail.Rows.Count; i++)
{
string Seq = this.GVDetail.Rows[i].Cells[1].Text;
CheckBox cb = this.GVDetail.Rows[i].FindControl("ChkSelectOne") as CheckBox;
if (SelectedSeqItems.Contains(Seq) && !cb.Checked)
SelectedSeqItems.Remove(Seq);
if (!SelectedSeqItems.Contains(Seq) && cb.Checked)
SelectedSeqItems.Add(Seq);
}
this.SelectedSeqItems = SelectedSeqItems;
}

3.删除前先调用上面的收集函数
后遍历收集到的集合

protected void BtConfirmDel_Click(object sender, EventArgs e)
{

CollectSelectedSeq();

foreach (object tmp in this.SelectedSeqItems)
{
Seq = Convert.ToInt16(tmp); //即可取出主键然就进行删除

}

}
  提交结果后遍历GridView, 通过FindControl找到CheckBox判断该行是否选中,然后根据DataKey获取出主键值(但培团前提是必须在绑定前把GridView的DataKeyNames指定为主键的名称)。
  参考下面一升隐段代码:
  foreach(GridViewRow row in GridView1.Rows){

  CheckBox cb = row.FindControl("checkboxid") as CheckBox;
  if (cb != null && cb.Checked){
  // 获取主键
  Object key = GridView.DataKeys[row.RowIndex];
  }
 吵中厅 }
← 上一篇: 下一篇: →