我有一个包含此类数据的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();
答案 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();