2009-02-04 69 views
7

我有一个表格,说1640项。我设置了如何在BindingSource.Filter之后获取DataGridView的可视行数?

bindingSource.Filter = "some filter query string"; 

并且大部分行消失了,例如400行。我希望能够告诉用户“Showing 400 of 1640 items”,因为他们点击了一些文本框,这些文本框会更改过滤器字符串,因此哪些行可以在dataGridView对象中看到(很像iTunes,但是用于医疗数据,而不是流派/艺术家/专辑过滤歌曲)。

我试过bindSource.Count,无论过滤器字符串设置为什么(尽管显示的行数少于所需的数量),它总是1640。我尝试遍历dataGridView.Rows中的所有行,并只计算可见的行,但仍然总计为1640.

我在哪里可以获得此信息?

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

+0

我有一个代码没有被调用,除了一开始就有一个错误!哎呀!至少有两种方法来查找计数。看到我的答案。 – 2009-02-06 20:06:09

回答

1

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

3

Jared,

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

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

HTH -Jay

+0

这工作得很好! – TWood 2014-02-04 16:18:38

1

我搞砸别的东西了。周杰伦是正确的:

dataGridViewCases.Rows.Count 

作品,一样:

bindingSource.Count 
14

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

+1

感谢这帮助 – user3813249 2014-08-12 19:18:13

0

你只需要使用您的BindingSource的Count属性...

ExampleBindoneSource.Count() 
相关问题