DataGridView控件绑定数据之后,置顶操作

一个小小的置顶,就搞了半个小时,还是记录一下吧。

1.第一个问题就是datatable的插入只能是Insert DataRow,但是获取选中的行,都是DataGridViewRow,不能直接转换。

找到了以下的解决办法:

其中dg表示DataGridViewRow。

      DataRow dr = (dg.DataBoundItem as DataRowView).Row;

2.第二个问题就是因为是绑定数据,不能直接插入到第一行,也不能直接删除,所以必须复制这一行的数据。

找到了以下解决办法:

         DataRow newDr = datatable.NewRow();
         newDr.ItemArray = dr.ItemArray;

3.DataGridView选中Rows的问题,selectrows中的index不是按照实际上的行索引号来的,而是根据鼠标选择的先后顺序

4.贴上置顶的代码

 1         private void ToolStripMenuItem_Top_Click(object sender, EventArgs e)
 2         {
 3             int nCounts = dataGridView_Barcode.SelectedRows.Count;
 4             for (int i = nCounts - 1; i >= 0; i--)
 5             {
 6                 DataGridViewRow dg = dataGridView_Barcode.SelectedRows[i];
 7                 DataRow dr = (dg.DataBoundItem as DataRowView).Row;
 8                 DataRow newDr = datatable.NewRow();
 9                 newDr.ItemArray = dr.ItemArray;
10                 datatable.Rows.RemoveAt(dataGridView_Barcode.SelectedRows[i].Index);
11                 datatable.Rows.InsertAt(newDr, 0);
12                 
13             }
14         }
原文地址:https://www.cnblogs.com/ligiggy/p/11208534.html