datagridview 点击标头排序, 隐藏行会显示出来,如何只排序 只显示的行?

解决方案 »

  1.   

    对数据源比如 DataTable 的 DataRow 可以先 Delete() 还原用 RejectChanges private void Form1_Load(object sender, EventArgs e)
     {
         var data = new DataTable();
         data.Columns.Add("column1", typeof(string));
         data.Columns.Add("column2", typeof(string));
         data.Columns.Add("column3", typeof(string));     data.Rows.Add("c01", "c02", "c03");
         data.Rows.Add("c11", "c12", "c13");
         data.Rows.Add("c21", "c22", "c23");     data.AcceptChanges();     this.dataGridView1.DataSource = data;
     } // 隐藏
     private void button1_Click(object sender, EventArgs e)
     {
         var data = (DataTable)this.dataGridView1.DataSource;
         var currentDatas = data.Select("", "", DataViewRowState.Unchanged);
         if (currentDatas.Length > 0)
             currentDatas[0].Delete();
     } // 全部再显示
     private void button2_Click(object sender, EventArgs e)
     {
         var data = (DataTable)this.dataGridView1.DataSource;
         data.RejectChanges();
     }