2012-10-25 15 views
7

Co należy dodać do mojego kodu, aby wyświetlać tylko wyniki wyszukiwania?Wyszukiwanie DataGridview: wyświetla tylko wynik wyszukiwania i ukrywa inne wiersze?

Teraz, gdy szukam, wynik wyszukiwania staje się zaznaczony (wyróżniony), a pozostałe pozostają takie same.

Próbowałem ukryć pozostałe wiersze, ale bez żadnego sukcesu (i wyświetlać tylko wynik wyszukiwania, sam). Jakieś sugestie? Im przy użyciu datagridview.

Mój kod:

private void button3_Click_1(object sender, EventArgs e) 
{ 
    string search = textBox1.Text; 

    for (int i = 0; i < dgTest.Rows.Count; i++) 
    { 
     if (dgTest.Rows[i].Cells[0].Value.ToString() == search) 
     { 
      dgTest.Rows[i].Selected = true; 
      break; 
     } 
     else 
     { 
      dgTest.Rows[i].Selected = false; 
     } 
    } 
} 

Odpowiedz

1

można spróbować to:

for (int i = 0; i < dgTest.Rows.Count; i++) 
{ 
    if (dgTest.Rows[i].Cells[0].Value.ToString() == "search") 
    { 
     dgTest.Rows[i].Selected = true; 
     dgTest.Rows[i].Visible = true; 
    } 
    else 
    { 
     dgTest.Rows[i].Visible = false; 
     dgTest.Rows[i].Selected = false; 
    } 
} 
5

Jeśli DataGridView nie jest związany ze źródłem danych, a następnie ustawienie właściwości Visible rzędzie do fałszywe będzie go ukryć:

for (int i = 0; i < dgTest.Rows.Count; i++) 
    { 
     var row = dgTest.Rows[i]; 

     if (row.Cells[0].Value.ToString() == search) 
     { 
      row.Selected = true; 
      row.Visible = true; 
     } 
     else 
     { 
      row.Selected = false; 
      row.Visible = false; 
     } 
    } 

(usunąłem „break "polecenie, ponieważ nawet po znalezieniu pasującego wiersza, chcesz kontynuować i ukryć pozostałe wiersze.)

Jeśli używasz DataBinding, nie jest to takie proste, jak pokazano w this page.

+0

Dziękujemy za pomoc! Używam wiązania danych, więc stało się trudniej niestety. : P – user1773766

Powiązane problemy