2016-09-30 61 views
-1

我寫了一個方法,像中的所有行網格視圖

 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; 
       } 
      } 
     } 
    } 

加載頁面時,該功能被稱爲是看不見的。問題在於它使得gridview中的所有行都不可見。我只想檢查是否存在具有相同值的文本框,只有一行應該變爲不可見。請幫助

+0

請幫幫我 !!! – Nida

回答

0

嘗試使用字典。讓再檢查所有的獨特的價值觀,如果你字典包含的值,如果不讓它隱形

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; 
     } 

    } 
} 
+0

感謝您的回答,但我想比較網格視圖的文本框中已有的值...請幫助我 – Nida

+0

這就是這是做什麼。字典將保存文本框中的所有唯一值。如果它的唯一值被添加到字典中,那麼意味着這個值已經被遇到,所以使得行可見性爲假 –

+0

你能告訴我怎麼給字典賦值...... pleasw – Nida

-1

試試這個

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; 
        } 
       } 
      } 
     } 

更簡單的方法是,使用數據視圖

//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(); 
+0

抱歉,上面的代碼在哪個循環實施不起作用...請幫助我! – Nida