Incremental search

Z

Zoltan Hubai

Hi

I'm trying to do incremental search in my DataTable with TextBox and
DataGridView. I did it but like to know if it's there a simple method to
do the same.

I have a DataSource with more DataTables. Depending wich TextBox has the
focus I do the incremental search on the related DataTable to the
TextBox. The DataTable is always displayed in the same DataGridView.

I put on a Form a BindingSource. The DataGridView is linked to the
BindingSource. When the TextBox control get's the focus i setup the
BindingSource DataSource property to the related DataTable. This works
nice and the related data is displayed in the DataGridView.

Now I created a TextChanged event for the TextBox that does the actual
incremental search:

private void textBox1_TextChanged(object sender, EventArgs e)
{
// serach the related DataTable for all rows that begins with
// the TextBox.Text
DataRow[] rows =
jciSifarnik.Tables["TableName"].Select(string.Format("Sifra LIKE
'{0}*'",textBox1.Text));
// Do we have any row's that meet the search criteria
if (rows.Length > 0)
{
// we have some rows, find out the index for the first
int i = bindingSource1.Find("Sifra", rows[0]["Sifra"]);
if (i >= 0)
// set the Position for the first row that was found
bindingSource1.Position = i;
}
}

This works nice, and the first row that matches the criteria is focused
in the DataGridView.
I just don't like that I need to do 2 times the search. Can I set
somehow the focused row after the first search (Select) or can I maybe
do the incremental searching with the DataGridView without using the
BindingSource control?

Thx
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top