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();