您的位置:首页 > 其它

GridView翻页时保持CheckBox选择状态

2012-11-05 11:19 405 查看
//定义翻页bool

1

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

    }
//获取选择项主键

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()

1

protected
void gvwResult_DataBinding(object sender, EventArgs e)
2



   


{
3

        GetSelectedItem();
4

    changed=true;
5

    }
//在行绑定时确定CheckBox选中状态

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(),否则不翻页时选择项获取不到.

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

     }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: