2012-10-25 5 views
7

Was soll ich meinem Code hinzufügen, um nur die Ergebnisse meiner Suche anzuzeigen?DataGridview-Suche: Nur Suchergebnis anzeigen und andere Zeilen ausblenden?

Im Moment, wenn ich suche, wird das Suchergebnis ausgewählt (hervorgehoben) und die anderen bleiben gleich.

Versuchen Sie, die anderen Zeilen zu verstecken, aber ohne Erfolg (und zeigen Sie nur das Suchergebnis, allein). Irgendwelche Vorschläge? Ich verwende eine Datagridview.

Mein Code:

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

Antwort

1

Sie können dies versuchen:

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

Wenn Ihr Datagridview nicht an eine Datenquelle gebunden ist, dann die Visible-Eigenschaft auf false der Zeile Einstellung wird es verstecken:

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

(Ich entfernte die ‚Pause Wenn Sie die entsprechende Zeile gefunden haben, möchten Sie fortfahren und die anderen Zeilen ausblenden.

Wenn Sie DataBinding verwenden, ist es jedoch nicht so einfach, wie in this page.

+0

Sie für die Hilfe danken! Ich verwende Datenbindung, so dass es leider schwieriger wurde. : P – user1773766

Verwandte Themen