// 定义翻页bool 1private bool changed=false; // 定义保存选择项主键集合属性 protected List < string > SelectedItems ... { get ...{ return ViewState["selecteditems"]!=null ? (List<string>)ViewState["selecteditems"] : null; } set ...{ ViewState["selecteditems"] = value; } } // 获取选择项主键 private void GetSelectedItem() ... { List<string> selecteditems = null; if (this.SelectedItems == null) ...{ selecteditems = new List<string>(); } else ...{ selecteditems = this.SelectedItems; }//获取选择的记录 for (int i = 0; i < this.gvwResult.Rows.Count; i++) ...{ CheckBox cbx = (CheckBox)this.gvwResult.Rows[i].FindControl("chkSelect"); string id = this.gvwResult.DataKeys[i].Values[0].ToString(); if (selecteditems.Contains(id) && !cbx.Checked) selecteditems.Remove(id); if (!selecteditems.Contains(id) && cbx.Checked) selecteditems.Add(id); } this.SelectedItems = selecteditems;} // 在 DataBinding事件中执行GetSelectedItem() protected void gvwResult_DataBinding( object sender, EventArgs e) ... { GetSelectedItem(); changed=true; } // 在行绑定时确定CheckBox选中状态 protected void gvwResult_RowDataBound( object sender, GridViewRowEventArgs e) ... { if (e.Row.RowIndex > -1 && this.SelectedItems!= null) ...{ CheckBox cbx = (CheckBox)e.Row.FindControl("chkSelect"); string id = this.gvwResult.DataKeys[e.Row.RowIndex].Values[0].ToString(); if (SelectedItems.Contains(id)) cbx.Checked = true; else cbx.Checked = false; } } // 根据changed确定是否再执行GetSelectedItem(),否则不翻页时选择项获取不到. protected void btnConfirm_Click( object sender, EventArgs e) ... { if(!changed) GetSelectedItem(); foreach (string id in (List<string>)this.SelectedItems) ...{ //... } }