如何在BindingSource.Filter之后获取DataGridView的可见行数?

时间:2009-02-04 00:16:33

标签: .net xml winforms datagridview c#-2.0

我有一张1640件物品的桌子。我设置了

bindingSource.Filter = "some filter query string";

并且大多数行都会消失,比如400行。我希望能够告诉用户“显示400个1640个项目”,因为他们点击了一些文本框,这些文本框更改了过滤字符串,因此哪些行在dataGridView对象中可见(很像iTunes,但对于医疗数据,不是流派/艺术家/专辑过滤歌曲)。

我尝试使用bindingSource.Count,无论Filter字符串设置为什么,它总是1640(即使根据需要显示的行数少得多)。我尝试循环遍历dataGridView.Rows中的所有行,并仅计算可见的行,但仍然总计为1640。

我在哪里可以获得这些信息?

请注意,我没有使用SQL,但bindingSource.DataSource是DataView中的DataSource(来自从XML读取的数据集)。

5 个答案:

答案 0 :(得分:17)

试试这个:datagridviewname.Rows.GetRowCount(DataGridViewElementStates.Visible);

答案 1 :(得分:3)

贾里德,

我最近不得不做这件事。在我应用过滤器后,对我有用的是使用DataGridView.Rows.Count属性。

您是否将数据源设置为BindingSource或DataGridView的DataSource属性?它应该是BindingSource。

HTH -Jay

答案 2 :(得分:1)

如何在单独的DataTable中添加过滤的项目并对过滤的项目进行计数。

答案 3 :(得分:1)

我把其他东西搞砸了。杰伊是对的:

dataGridViewCases.Rows.Count

同样有效:

bindingSource.Count

答案 4 :(得分:0)

你只需要使用bindingSource的Count属性......

ExampleBindoneSource.Count()