
1.aspx页面中
1.为gridview增加一个模板列
姿昌HeaderTemplate>
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];
}
吵中厅 }