zoukankan      html  css  js  c++  java
  • GridView翻页时保持CheckBox选择状态

    //定义翻页bool
    1private bool changed=false;
    //定义保存选择项主键集合属性
    1protected List<string> SelectedItems
    2    {
    3       get return ViewState["selecteditems"]!=null ? (List<string>)ViewState["selecteditems"] : null; }
    4        set { ViewState["selecteditems"= value; }
    5    }
    //获取选择项主键
     1private 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()
    1protected void gvwResult_DataBinding(object sender, EventArgs e)
    2    {
    3        GetSelectedItem();
    4    changed=true;
    5    }
    //在行绑定时确定CheckBox选中状态
     1protected 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(),否则不翻页时选择项获取不到.
    1protected 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     }
  • 相关阅读:
    WCF学习之旅—WCF第二个示例(七)
    WCF学习之旅—WCF第二个示例(六)
    WCF学习之旅—WCF第二个示例(五)
    WCF学习之旅—WCF概述(四)
    WCF学习之旅——第一个WCF示例(三)
    WCF学习之旅——第一个WCF示例(二)
    WCF学习之旅——第一个WCF示例(一)
    WPF入门教程系列二十三——DataGrid示例(三)
    WPF入门教程系列二十二——DataGrid示例(二)
    WPF入门教程系列二十一——DataGrid示例(一)
  • 原文地址:https://www.cnblogs.com/jiangshaofen/p/782450.html
Copyright © 2011-2022 走看看