1
private bool changed=false;
//定义保存选择项主键集合属性
private bool changed=false;1
protected List<string> SelectedItems
2
{
3
get { return ViewState["selecteditems"]!=null ? (List<string>)ViewState["selecteditems"] : null; }
4
set { ViewState["selecteditems"] = value; }
5
}
//获取选择项主键
protected List<string> SelectedItems2
{3
get { return ViewState["selecteditems"]!=null ? (List<string>)ViewState["selecteditems"] : null; }4
set { ViewState["selecteditems"] = value; }5
} 1
private void GetSelectedItem()
2
{
3
List<string> selecteditems = null;
4
if (this.SelectedItems == null)
5
{
6
selecteditems = new List<string>();
7
}
8
else
9
{
10
selecteditems = this.SelectedItems;
11
}
12
13
//获取选择的记录
14
for (int i = 0; i < this.gvwResult.Rows.Count; i++)
15
{
16
CheckBox cbx = (CheckBox)this.gvwResult.Rows[i].FindControl("chkSelect");
17
18
string id = this.gvwResult.DataKeys[i].Values[0].ToString();
19
20
if (selecteditems.Contains(id) && !cbx.Checked)
21
selecteditems.Remove(id);
22
if (!selecteditems.Contains(id) && cbx.Checked)
23
selecteditems.Add(id);
24
}
25
this.SelectedItems = selecteditems;
26
}
//在 DataBinding事件中执行GetSelectedItem()
private void GetSelectedItem()2
{3
List<string> selecteditems = null;4
if (this.SelectedItems == null)5
{6
selecteditems = new List<string>();7
}8
else9
{10
selecteditems = this.SelectedItems;11
}12

13
//获取选择的记录14
for (int i = 0; i < this.gvwResult.Rows.Count; i++)15
{16
CheckBox cbx = (CheckBox)this.gvwResult.Rows[i].FindControl("chkSelect");17

18
string id = this.gvwResult.DataKeys[i].Values[0].ToString();19

20
if (selecteditems.Contains(id) && !cbx.Checked)21
selecteditems.Remove(id);22
if (!selecteditems.Contains(id) && cbx.Checked)23
selecteditems.Add(id);24
}25
this.SelectedItems = selecteditems;26
}1
protected void gvwResult_DataBinding(object sender, EventArgs e)
2
{
3
GetSelectedItem();
4
changed=true;
5
}
//在行绑定时确定CheckBox选中状态
protected void gvwResult_DataBinding(object sender, EventArgs e)2
{3
GetSelectedItem();4
changed=true;5
} 1
protected void gvwResult_RowDataBound(object sender, GridViewRowEventArgs e)
2
{
3
if (e.Row.RowIndex > -1 && this.SelectedItems!= null)
4
{
5
CheckBox cbx = (CheckBox)e.Row.FindControl("chkSelect");
6
string id = this.gvwResult.DataKeys[e.Row.RowIndex].Values[0].ToString();
7
if (SelectedItems.Contains(id))
8
cbx.Checked = true;
9
else
10
cbx.Checked = false;
11
}
12
}
//根据changed确定是否再执行GetSelectedItem(),否则不翻页时选择项获取不到.
protected void gvwResult_RowDataBound(object sender, GridViewRowEventArgs e)2
{ 3
if (e.Row.RowIndex > -1 && this.SelectedItems!= null)4
{ 5
CheckBox cbx = (CheckBox)e.Row.FindControl("chkSelect");6
string id = this.gvwResult.DataKeys[e.Row.RowIndex].Values[0].ToString();7
if (SelectedItems.Contains(id))8
cbx.Checked = true;9
else10
cbx.Checked = false;11
}12
}1
protected void btnConfirm_Click(object sender, EventArgs e)
2
{
3
if(!changed)
4
GetSelectedItem();
5
foreach (string id in (List<string>)this.SelectedItems)
6
{
7
//
..
8
}
9
}
protected void btnConfirm_Click(object sender, EventArgs e)2
{3
if(!changed)4
GetSelectedItem();5
foreach (string id in (List<string>)this.SelectedItems)6
{7
//
..8
}9
}