C# 所有行在栅格视图中都不可见

C# 所有行在栅格视图中都不可见,c#,asp.net,c#-4.0,C#,Asp.net,C# 4.0,我写了一个类似的方法 private void AvoidDuplicate() { for (int i = 0; i < grdView.Rows.Count; i++) { TextBox txtoldvalue = grdView.Rows[i].FindControl("txtLicenseNumber") as TextBox; string oldvalue = txtoldva

我写了一个类似的方法

     private void AvoidDuplicate()
    {
        for (int i = 0; i < grdView.Rows.Count; i++)
        {
            TextBox txtoldvalue = grdView.Rows[i].FindControl("txtLicenseNumber") as TextBox;
            string oldvalue = txtoldvalue.Text.ToString();

            for (int j = 0; j < grdView.Rows.Count; j++)
            {
                TextBox txtnewvalue = grdView.Rows[j].FindControl("txtLicenseNumber") as TextBox;
                string newvalue = txtnewvalue.Text.ToString();
                if (oldvalue == newvalue)
                {
                    grdView.Rows[j].Visible = false;
                }
            }
        }
    }
private void avoidreplicate()
{
对于(int i=0;i

加载页面时调用此函数。问题是它使gridview中的所有行都不可见。我只想检查是否存在具有相同值的文本框,其中只有一行不可见。请帮助

尝试使用字典。要获取所有唯一值,请检查字典是否包含该值,如果不包含,请使其不可见

private void AvoidDuplicate()
{
  Dictionary<string,string> checkdictionary=new Dictionary<string,string>();

    for (int i = 0; i < grdView.Rows.Count; i++)
    {
        TextBox txtnewvalue = grdView.Rows[i].FindControl("txtLicenseNumber") as TextBox;
            string newvalue = txtnewvalue.Text.ToString();
        if(!checkdictionary.ContainsKey(newvalue))
        {
             checkdictionary[newvalue]="something";
        }
        else
        {
          grdView.Rows[i].Visible = false;
        }

    }
}
private void avoidreplicate()
{
字典检查字典=新字典();
对于(int i=0;i
试试这个

 private void AvoidDuplicate()
        {
            for (int i = 0; i < grdView.Rows.Count; i++)
            {
                TextBox txtoldvalue = grdView.Rows[i].FindControl("txtLicenseNumber") as TextBox;
                string oldvalue = txtoldvalue.Text.ToString();

                for (int j = 0; j < grdView.Rows.Count; j++)
                {
                   if( j == i)
                     continue;
TextBox txtnewvalue = grdView.Rows[j].FindControl("txtLicenseNumber") as TextBox;
                    string newvalue = txtnewvalue.Text.ToString();
                    if (oldvalue == newvalue)
                    {
                        grdView.Rows[j].Visible = false;
                    }
                }
            }
        }

请帮忙!!!感谢您的回答,但我想比较网格视图文本框中已经存在的值。。。请帮我看看这是怎么回事。字典将保存文本框中的所有唯一值。如果它是唯一的值,则会添加到字典中,否则表示已遇到此值,因此请使行可见性为false。请说明如何将值分配给字典。。。请选择[newvalue]=“某物”;这会将newvalue作为字典的键。价值并不重要,关键是重要的。只要实现我发布的代码abve并检查为什么这个答案被否决?这是对askers问题的一个完全合法的回答,很抱歉上面实现循环的代码不起作用。。。请帮帮我!!!
    //populate your datatable dt. List your columns in ToTable method that you want to include in uniqueness of row.

    dt = dt.DefaultView.ToTable(true, "LicenseNumber");
    GridView1.DataSource = dt;
    GridView1.DataBind();