Estoy tratando de agregar una función de autocompletar a un cuadro de texto, los resultados provienen de una base de datos. Vienen en el formato deC# Autocompletar
[001] Por último, Primer Segundo
Actualmente debe escribir [001] ... para conseguir las entradas para mostrar. Así que el problema es que quiero que se complete incluso si escribo el primer nombre primero. Así que si una entrada era
[001] Smith, John D
si empezaba a escribir John entonces esta entrada debería aparecer en los resultados para el auto completo.
Actualmente el código se ve algo así como
AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();
txtBox1.AutoCompleteCustomSource = acsc;
txtBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
txtBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
....
if (results.Rows.Count > 0)
for (int i = 0; i < results.Rows.Count && i < 10; i++)
{
row = results.Rows[i];
acsc.Add(row["Details"].ToString());
}
}
resultados es un conjunto de datos que contiene la consulta resulta
La consulta es una consulta de búsqueda sencilla mediante la instrucción similares. Se devuelven los resultados correctos si no utilizamos la función autocompletar y simplemente lanzamos los resultados a una matriz.
¿Algún consejo?
EDIT:
Ésta es la consulta que devuelve los resultados
SELECT Name from view_customers where Details LIKE '{0}'
Con {0} siendo el marcador de posición para la cadena buscada.
Se ve bien de un vistazo. Sería útil ver más código, incluida la consulta utilizada y la inicialización de 'id' (¿tienes dos cajas de autocompletar?). –
Ok agregó una edición con la consulta. Solo estoy usando 1 caja de autocompletar.En realidad, la ID no se usa en los resultados que se agregó para su uso posterior y, por lo tanto, la eliminé en esta edición. Perdón por la confusion. – corymathews
Hay un buen C# [control de autocompletar] gratuito (http://code.google.com/p/email-autocomplete) disponible ([con código fuente] (http://email-autocomplete.googlecode.com/svn/ tronco)) que es fácil de modificar. – Jimmy