根据文本框数据过滤datagridview行 [英] Filter datagridview rows based on textbox data

查看:50
本文介绍了根据文本框数据过滤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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆