筛选DataGridView行的范围为2个值

时间:2015-10-10 14:21:32

标签: c# winforms datagridview

我有一个包含此类数据的DataGridView:

我想只显示HODD列值介于1.54 - 1.73之间的行。

如何按该列的值过滤DataGridView的值?

我试图在网上找到一个解决方案,但我找不到任何东西。

编辑:这是列表代码:http://pastebin.com/BijEWdRH

EDIT2:最终解决方案:

decimal from = decimal.Parse(fromTxt.Text);
decimal to = decimal.Parse(toTxt.Text);
finabexDgv.DataSource = combinedDataList.Where(p => Convert.ToDecimal(p.HODD) >= from && Convert.ToDecimal(p.HODD) <= to).ToList();

2 个答案:

答案 0 :(得分:0)

我认为使用following会让您获得所需的结果。这里的示例看起来像是一个关于如何使用DataGridView进行过滤的好教程。

在本教程中,他们将展示如何从XML源中检索数据,而不是您的情况。以下部分是有用的:

DataView view1 = new DataView(tables[0]);

// Create a DataGridView control and add it to the form.
DataGridView datagridview1 = new DataGridView();
datagridview1.AutoGenerateColumns = true;
this.Controls.Add(datagridview1);

// Create a BindingSource and set its DataSource property to
// the DataView.
BindingSource source1 = new BindingSource();
source1.DataSource = view1;

// Set the data source for the DataGridView.
datagridview1.DataSource = source1;

//The Filter string can include Boolean expressions.
source1.Filter = "artist = 'Dave Matthews' OR cd = 'Tigerlily'";

答案 1 :(得分:0)

您可以像这样更改代码,以添加所需的where&#34;过滤器&#34;。

finabexDgv.DataSource = combinedDataList.where(p =&gt; p.HODD&lt; = 1.54&amp;&amp; p.HODD&gt; = 1.73).ToList();

修改 我注意到&#34;其中&#34;大写,HODD是一个字符串,因此必须将其转换为数字。如果您在HODD中的任何数据为空或不是数字,请注意这将引发异常。

finabexDgv.DataSource = combinedDataList.Where(p => Convert.ToDecimal(p.HODD) >= 1.54m && Convert.ToDecimal( p.HODD) <= 1.73m ).ToList();