zoukankan      html  css  js  c++  java
  • datagrid加checkbox实现分页不丢失选择的记录 (转)

    namespace checkboc_page
    {
     /// <summary>
     /// WebForm1 的摘要说明。
     /// </summary>
     public class WebForm1 : System.Web.UI.Page
     {
      protected System.Web.UI.WebControls.Button Button1;
      protected System.Web.UI.WebControls.DataGrid DataGrid1;
     
      private void Page_Load(object sender, System.EventArgs e)
      {
       if(!Page.IsPostBack)
       {
        show();
       }
      }

      private void show()
      {
       string conn =  ConfigurationSettings.AppSettings.Get("Connstring");
       DataSet ds = new DataSet();
       using(  SqlConnection con = new SqlConnection(conn))
       {
        con.Open();
        SqlCommand comm = new SqlCommand();
        SqlDataAdapter da =new SqlDataAdapter();
        
        da.SelectCommand = new SqlCommand();
        da.SelectCommand.Connection = con;
        da.SelectCommand.CommandText = "select * from Orders";
        da.SelectCommand.CommandType = CommandType.Text;
        
        da.Fill(ds);
               
       
        
       }
       this.DataGrid1.DataSource = ds.Tables[0];
      
       this.DataGrid1.DataBind();
                
       if(Session["userlist"]!=null)
       {
        Hashtable ht =(Hashtable) Session["userlist"];
        if(ht!=null)
        {
         for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
         {
          if (ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
           (DataGrid1.Items[i].Cells[2].FindControl("CheckBox1") as CheckBox).Checked = true;

         }
        }
       }
      }

      private void check()
      {
       Hashtable ht = new Hashtable();
       if(Session["userlist"]!=null)
       {
        ht =(Hashtable) Session["userlist"];
        if(ht!=null)
        {
         for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
         {
          if ( (DataGrid1.Items[i].Cells[2].FindControl("CheckBox1") as CheckBox).Checked)
          {
           if (! ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
           {
            ht.Add(DataGrid1.Items[i].Cells[0].Text.ToString().Trim(),DataGrid1.Items[i].Cells[1].Text.ToString().Trim());
           }
          }
          else
          {
           if ( ht.ContainsKey(DataGrid1.Items[i].Cells[0].Text.ToString().Trim()))
           {
            ht.Remove(DataGrid1.Items[i].Cells[0].Text.ToString().Trim());
           }
          }
         }
        }
       }
       else
       {
        for(int i = 0 ;i<DataGrid1.Items.Count ;i++)
        {
         if ( (DataGrid1.Items[i].Cells[2].FindControl("CheckBox1") as CheckBox).Checked)
         {
          ht.Add(DataGrid1.Items[i].Cells[0].Text.ToString().Trim(),DataGrid1.Items[i].Cells[1].Text.ToString().Trim());
         }
        }
       }

       Session["userlist"] = ht;
      }

      #region Web 窗体设计器生成的代码
      override protected void OnInit(EventArgs e)
      {
       //
       // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
      }
      
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {   
       this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
       this.Button1.Click += new System.EventHandler(this.Button1_Click);
       this.Load += new System.EventHandler(this.Page_Load);

      }
      #endregion

      private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
      {
       check();
       
       DataGrid1.CurrentPageIndex = e.NewPageIndex;
       show();
      }

      private void Button1_Click(object sender, System.EventArgs e)
      {
       
       
                 check();
       Hashtable ht = (Hashtable)Session["userlist"];
       
        foreach (DictionaryEntry objDE in ht)
        {
         Response.Write(objDE.Value.ToString());
         
        }


       
      }
     }
    }

  • 相关阅读:
    16. InOrder
    15. BddStyle: given-willReturn、OneLiner风格
    12. atLeastOnce、atLeast、atMost、never、only、verifyNoMoreInteractions、verifyZeroInteractions
    11. verify验证方法调用
    sqlserver数据文件变更位置
    生产上的sqlserver数据库误删或者操作不当的补救措施
    linux centos7 安装配置jdk
    linux centos7 mysql5.7 设置端口以及远程访问
    linux centos7 安装mysq5.7步骤总结
    关于Netty的那点事
  • 原文地址:https://www.cnblogs.com/MaxIE/p/461325.html
Copyright © 2011-2022 走看看