buscar dentro de un dropdownlist

25/01/2008 - 06:02 por milton | Informe spam
Amigos

tengo este dropdownlist que lo relleno de datos con el siguiente codigo:

void LlenarddlStreet(){
OleDbConnection Conn = new
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="+Server.MapPath("J&J_Data.mdb")+";");
OleDbCommand myCmd = new OleDbCommand();
DataSet myDs = new DataSet();
myCmd.Connection = Conn;
myCmd.CommandText = "SELECT * FROM calles WHERE location
='"+ddlFromID.SelectedItem.Value+"'"+"ORDER BY street";
OleDbDataAdapter myAdapter = new OleDbDataAdapter(myCmd);
myAdapter.Fill(myDs);
ddlStreet.DataSource = myDs.Tables[0].DefaultView;
ddlStreet.DataTextField = "street";
ddlStreet.DataValueField = "street";
ddlStreet.DataBind();
ListItem li = new ListItem();
ddlStreet.Items.Add(li);
Conn.Close();
}

hago una conexion a una BD en access y coloco los datos que necesito
desplegar, cuando ejecuto el programa puedo presionar una letra y se coloca
en la primera nombre que contenga esa letra, ahora mi interes es que si la
persona presiona mas de una letra el dropdownlist pueda ir desplegando
informacion segun las combinaciones de las letras que presione el usuario,
ejemplo: si presiona "wi" y en la tabla esta la palabra "winston" pues que
este haga como si fuera un filtro de las palabras que contengan esa
combinacion.

y por otro lado si dentro de las letras o numeros que presione el usuario
estos puedan ser buscados no importando si estan al inicio de la palabra o
no es decir si el usuario presiona la tecla "1" y dentro del campo existe
un valor que es "E 165" que este pueda aparecer dentro de las opciones que
tenga el usuario a elegir.

como podria hacer esto en c#..?
 

Leer las respuestas

#1 Alberto Poblacion
25/01/2008 - 07:52 | Informe spam
"milton" wrote in message
news:%235sP9%
tengo este dropdownlist que lo relleno de datos con el siguiente codigo:
[...]
cuando ejecuto el programa puedo presionar una letra y se coloca en la
primera nombre que contenga esa letra, ahora mi interes es que si la
persona presiona mas de una letra el dropdownlist pueda ir desplegando
informacion segun las combinaciones de las letras que presione el usuario,
ejemplo: si presiona "wi" y en la tabla esta la palabra "winston" pues que
este haga como si fuera un filtro de las palabras que contengan esa
combinacion.

y por otro lado si dentro de las letras o numeros que presione el usuario
estos puedan ser buscados no importando si estan al inicio de la palabra o
no es decir si el usuario presiona la tecla "1" y dentro del campo existe
un valor que es "E 165" que este pueda aparecer dentro de las opciones
que tenga el usuario a elegir.

como podria hacer esto en c#..?



No se puede hacer en C#. Tendrás que usar JavaScript.
El DropDownList es un control que se usa en páginas web, por lo que se
deduce, aunque no lo dices en tu mensaje, que esás trabajando con WebForms.
El código en C# se usa en el servidor para construir el HTML que se envía al
navegador, y es el navegador el que muestra los resultados. Para cuando el
navegador muestra el dropdownlist, el servidor ya ha terminado de ejecutar
el código C#, y es el navegador el que está haciendo todo el trabajo. Cuando
pulsas teclas, es el navegador el que las procesa, y va haciendo las
búsquedas en la lista. Esas teclas no se transmiten al servidor, y por lo
tanto no hay oportunidad de hacer nada on ellas en C#, ya que el C# no se
puede ejecutar en el navegador (bueno, se puede con las versiones nuevas de
Silverlight, pero todavía está en "beta").
Para interceptar las pulsacíones de teclas en el navegador y hacer
búsquedas con ellas hay que usar JavaScript. Por supuesto que ese JavaScript
lo puedes (y debes) enviar al navegador desde el servidor, y esa operación
de envío estará hecha en C# (a no ser que lo incluyas directamente en el
aspx). Pero para poder enviarlo, lo primero que necesitas es saber cuál es
el JavaScript necesario, y eso es mejor que lo preguntes en un foro de
JavaScript, en lugar de uno de C#.

Preguntas similares