2013-07-24 35 views
0

当我改变我的DataGridView与DataTable的数据源不具备行谁,并与数据表这种变化的DataSource谁包含行,标题文本的变化和像宽度另一个特性后...更改后的列标题文本更改DataSource?

+0

是的,它会根据数据表 –

+0

的列是你想填充改变gridview与行但不更改列标题? –

+0

DataTable总是有相同的列。当表没有行问题时开始。 我使用以下代码刷新表格: dgvPrivateVehicle.DataSource = dt.Select(“tip_p_s ='private'”)。Length> 0? dt.Select(“tip_p_s ='private'”)。CopyToDataTable():new DataTable();在之前的评论中的 – user2612602

回答

0

尝试之前,首先清除DGV用包含行的DataTable重新填充它。

0

我通过复制DT并清除她的行来解决问题。比我分配该DT到DataSorce,现在一切正常。也许不是最好的方式,但它的作品。谢谢你们!

1

尝试在DataGridViewDataTable之间使用BindingSource控件。 BindingSource控件有一个非常有用的属性,名为Filter,它将过滤掉不需要的行而不创建新的DataTable对象或以其他方式影响底层DataTable的结构,因此DataGridView的标题不会受到影响。

您可以通过代码手动执行此操作,也可以在设计器中删除BindingSource的实例。该守则将是这个样子:

BindingSource bs = new BindingSource(); 
bs.DataSource = YourDataTable; 
YourGridView.DataSource = bs; 

然后你就可以过滤掉你的结果通过简单地做:

bs.Filter = "some_column = 'some_value'";