我有一个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";
Run Code Online (Sandbox Code Playgroud)
我现在需要的是恢复其中的数据dataGridView1.但它不需要复杂.我的dataGridView1是readonly所以我唯一需要的是尊重订单和使用的过滤器,并将数据导出到DataTable.
有人可以帮帮我吗?
如果我理解正确,您需要将过滤后的行显示DataGridView为DataTable.您可以为此目的使用DataTable.DefaultView属性,其中包括所有过滤器.
试试这个
BindingSource bs = (BindingSource)dataGridView1.DataSource;
DataTable table = (DataTable)bs.DataSource;
DataTable filtered = table.DefaultView.ToTable();// here we get filtered datatable
Run Code Online (Sandbox Code Playgroud)