DataGridView TextBox filter in C#

Mattepuffo's logo
DataGridView TextBox filter in C#

DataGridView TextBox filter in C#

Dopo aver aggiunto i dati nella nostra GridView (ad esempio tramite XML come vedete qui), può capitare di voler creare un meccanismo di filtraggio, soprattutto in presenza di molti dati.

Possiamo creare un meccanismo attraverso il quale cercare nella GrdiView in base a ciò che scriviamo in una TextBox, il tutto in tempo reale.

Prima di tutto aggiungete una TextBox al Form dove c'è la GridView.

A questo punto nel Form dobbiamo creare un evento da intercettare in fase di scrittura nella TextBox:

private DataView dataView;

void TextSearchTextChanged(object sender, System.EventArgs e)
{
   try {
      dataView.RowFilter = string.Format("codice LIKE '%{0}%' OR RAGSOC LIKE '%{0}%' OR LISTINO_CI LIKE '%{0}%' OR LISTINO_KI LIKE '%{0}%'", textSearch.Text);
   } catch (Exception ex) {
      MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
   }
}

Sull'oggetto DataView usiamo la proprietà RowFilter, impostando una ricerca simile a una query di database.

Abbiamo usato il metodo Format per formattare meglio la stringa di ricerca.

Il primo argomento è appunto la stringa, il secondo il dato da passare che scriviamo nella TextBox (textSearch.Text).

Abbastanza easy, dovete solo stare attenti a scrivere bene la stringa.

Ciao!!


Condividi

Commentami!