Hallo,
ich habe ein kleines Problem.
In einem Listenformular stelle ich neben Detaildaten eine Liste mit den Nach- und Vornamen unserer Mitarbeiter dar.
Über ein Eingabefeld möchte ich, wenn man z.B. nur die ersten drei Anfangsbuchstaben des Namens eingibt, egal ob groß oder klein, der nächst mögliche Mitarbeiter selektiert wird, ohne das die gesamte Datenliste gefiltert wird.
Natürlich haben wir nicht soviel Mitarbeiter das diese Funktion in diesem Zusammenhang einen Sinn macht, aber ich möchte eine ähnliche Selektierung auch bei unseren Kunden und Kontaktdaten anfügen. und somit die Einheitlichkeit der Formulare aufrechterhalten.
System: VS2005, SQL2005, c#
Momentan lasse ich die Datensätze mit einer for-schleife durchlaufen
if (textBox1.Text != "")
{
DataRowView r;
bsPersonal.MoveFirst();
for (int i = 0; i < bsPersonal.Count; i++)
{
r = bsPersonal.Current asDataRowView;
string nachname = r["nachname"].ToString().ToUpper();
if (nachname.IndexOf(textBox1.Text.ToUpper()) != -1)
{
break;
}
bsPersonal.MoveNext();
}
}
vielleicht hat ja jemand von euch eine elegantere Lösung parat. Ich denke bei mehreren hundert Datensätzen könnte dieser Vorgang einige Zeit in Anspruch nehmen.
cu Jan
ich habe ein kleines Problem.
In einem Listenformular stelle ich neben Detaildaten eine Liste mit den Nach- und Vornamen unserer Mitarbeiter dar.
Über ein Eingabefeld möchte ich, wenn man z.B. nur die ersten drei Anfangsbuchstaben des Namens eingibt, egal ob groß oder klein, der nächst mögliche Mitarbeiter selektiert wird, ohne das die gesamte Datenliste gefiltert wird.
Natürlich haben wir nicht soviel Mitarbeiter das diese Funktion in diesem Zusammenhang einen Sinn macht, aber ich möchte eine ähnliche Selektierung auch bei unseren Kunden und Kontaktdaten anfügen. und somit die Einheitlichkeit der Formulare aufrechterhalten.
System: VS2005, SQL2005, c#
Momentan lasse ich die Datensätze mit einer for-schleife durchlaufen
if (textBox1.Text != "")
{
DataRowView r;
bsPersonal.MoveFirst();
for (int i = 0; i < bsPersonal.Count; i++)
{
r = bsPersonal.Current asDataRowView;
string nachname = r["nachname"].ToString().ToUpper();
if (nachname.IndexOf(textBox1.Text.ToUpper()) != -1)
{
break;
}
bsPersonal.MoveNext();
}
}
vielleicht hat ja jemand von euch eine elegantere Lösung parat. Ich denke bei mehreren hundert Datensätzen könnte dieser Vorgang einige Zeit in Anspruch nehmen.
cu Jan
Comment