根据文本框数据过滤datagridview行 [英] Filter datagridview rows based on textbox data
本文介绍了根据文本框数据过滤datagridview行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的文本框包含多个逗号分隔的字符串
我想根据文本框数据过滤我的datagridview行
但是因为'Sequence contains no elements'而得到异常< br $>
我的代码是
string [ ] saTans = txtSearch.Text.Trim()。分割( new string [] { ,},StringSplitOptions.RemoveEmptyEntries);
int rowIndex = -1;
DataGridViewRow row = null ;
foreach ( string sTans in saTans)
{
row = dgvUserTaskSheet.Rows
.Cast< DataGridViewRow>()
.Where(r = > r.Cells [ colTAN]。Value.ToString()。Equals(sTans) )
.First();
rowIndex = row.Index;
}
所以任何替代方式或任何帮助
解决方案
< blockquote>在您的代码row上有机会返回null值,因此rowIndex将尝试匹配为null。
如果您将其更改为
string [] saTans = txtSearch.Text.Trim()。Split( new string [] { ,},StringSplitOptions.RemoveEmptyEntries);
foreach ( string sTans in saTans)
{
dgvUserTaskSheet.DataSource =((List< test>)dgvUserTaskSheet.DataSource)。其中(p = > p。 dat.Contains(葜))ToList();
} < / test >
它将正常工作。
Hi,
My textbox contains multiple strings with comma seperated
I want to filter my datagridview rows based on textbox data
But iam getting exception as 'Sequence contains no elements'
My code is
string[] saTans = txtSearch.Text.Trim().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
int rowIndex = -1;
DataGridViewRow row=null;
foreach (string sTans in saTans)
{
row = dgvUserTaskSheet.Rows
.Cast<DataGridViewRow>()
.Where(r => r.Cells["colTAN"].Value.ToString().Equals(sTans))
.First();
rowIndex = row.Index;
}
So any alternate way or any help
解决方案
on your code "row" has a chance to return null value thus rowIndex will try to match as null.
if you change it as
string[] saTans = txtSearch.Text.Trim().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (string sTans in saTans) { dgvUserTaskSheet.DataSource = ((List<test>)dgvUserTaskSheet.DataSource).Where(p => p.dat.Contains(sTans)).ToList(); }</test>
it will be working fine.
这篇关于根据文本框数据过滤datagridview行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文