从DataGridView获取DataTable,尊重filter和排序

我有一个System.Windows.Forms.DataGridView填充数据。 我正在使用这样的代码:

 System.Data.DataTable dataTable1; System.Windows.Forms.BindingSource bindingSource1; System.Windows.Forms.DataGridView dataGridView1; // (...) bindingSource1.DataSource = dataTable1; dataGridView1.DataSource = bindingSource1; bindingSource1.Filter = "Some Filter Here"; 

我现在需要的是恢复dataGridView1的数据。 但它不需要复杂。 我的dataGridView1是readonly所以我唯一需要的是尊重订单和使用的filter,并将数据导出到DataTable

有人可以帮帮我吗?

如果我理解正确,您需要将DataGridView显示的过滤行显示为DataTable。 您可以为此目的使用DataTable.DefaultView属性 ,其中包括所有filter。

试试这个

 BindingSource bs = (BindingSource)dataGridView1.DataSource; DataTable table = (DataTable)bs.DataSource; DataTable filtered = table.DefaultView.ToTable();// here we get filtered datatable