Foros del Web » Programación para mayores de 30 ;) » .NET »

buscador inteligente

Estas en el tema de buscador inteligente en el foro de .NET en Foros del Web. disculpen la molestia, pero si me podrian ayudar, yo tengo un textbox y un listbox, en el listbox tengo una serie de nombre de personas, ...
  #1 (permalink)  
Antiguo 27/06/2004, 16:15
 
Fecha de Ingreso: junio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
Urgente Por Favor No Se Como Hacer

disculpen la molestia, pero si me podrian ayudar,
yo tengo un textbox y un listbox, en el listbox tengo una serie de nombre de personas, que me traigo de una base de datos, pero cuando yo vaya a seleccionar un nombre, yo quiero que cuando yo este escribiendo el nombre en el textbox el mismo me vaya buscando el nombre en el listbox. como lo hago?

Última edición por jonma29; 28/06/2004 a las 16:47
  #2 (permalink)  
Antiguo 28/06/2004, 17:06
Avatar de sindestino  
Fecha de Ingreso: noviembre-2003
Ubicación: xxxx xxxx
Mensajes: 270
Antigüedad: 20 años, 6 meses
Puntos: 0
ufff, eso mismo implementé en un sitio hace tiempo, pero recuerdo que la mayor parte del código lo bajé de algún lado.
No pude encontrar exactamente la misma funcionalidad pero creo que ésto te puede servir

http://www.siteexperts.com/tips/elements/ts07/page1.asp

Saludos
  #3 (permalink)  
Antiguo 28/06/2004, 17:15
 
Fecha de Ingreso: junio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
No Entendi Mucho El Codigo Que Me Enviastes, Si Puedes Conseguir El Codito Te Lo Agradeseria
  #4 (permalink)  
Antiguo 28/06/2004, 17:41
Avatar de sindestino  
Fecha de Ingreso: noviembre-2003
Ubicación: xxxx xxxx
Mensajes: 270
Antigüedad: 20 años, 6 meses
Puntos: 0
¿probaste el ejémplo que estaba en la página? ¿es eso lo que buscabas?

Te comento que ese tipo de funcionalidad se consigue con JavaScript que es un lenguaje que se ejecuta del lado del cliente (a diferencia del código que generalmente programamos con el Visual Studio que es del lado del servidor.
Ésto es así porque cada vez que se ejecuta un evento de "servidor", la página hace un postback (que es el envío de información del usuario al servidor y viceversa), si yo necesito evaluar la expresión introducida en un textbox cada vez que se presiona una tecla, necesito hacerlo todo en el cliente (sin que la página viaje al servidor) ya que el resultado sería muy malo (habría un pequeño retardo por cada tecla presionada).
En conclusión: no vas a encontrar la funcionalidad que estás buscando sin utilizar JavaScript, incluso el código que implementé yo es 95% JavaScript.

Te recomiendo que busques "LookUp List" en el google (con las comillas).
De seguro hay algún sitio con código un poco más entendible (y copiable)
  #5 (permalink)  
Antiguo 28/06/2004, 18:03
Avatar de sindestino  
Fecha de Ingreso: noviembre-2003
Ubicación: xxxx xxxx
Mensajes: 270
Antigüedad: 20 años, 6 meses
Puntos: 0
aca hay otro link

http://www.webreference.com/js/column15/
  #6 (permalink)  
Antiguo 28/06/2004, 18:06
 
Fecha de Ingreso: junio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
Lo Trate De Escribir En El Codigo Html, Pero Me Dice Que El "form" No Se Ejecuta En Html, La Verdad Que Ejemplo Tengo Utilizar El Que Aparece Arriba O Abajo??? Y En Que Parte Escribo El Codigo, Yo Estoy Utilizando Visual Studio.net Y Programando En Vb.net Donde Escribiria El Codigo Que Tu Me Dices En Java Scrip?????????????
  #7 (permalink)  
Antiguo 28/06/2004, 18:54
 
Fecha de Ingreso: junio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
como introduz el codigo java scrip????????????????????????????''
  #8 (permalink)  
Antiguo 29/06/2004, 08:25
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
El link de sindestino está muy claro friend.. pero si no lo entiendes de todas formas te lo paso. (aunque recuerda que hay que siempre buscar la forma...y no esperar a que hagan todo por nosotros ok.. ??) Solo haz copy and paste.. ya funciona bien...


en modo html

Ejemplo.aspx
Cita:
<HTML>
<HEAD>
<title>WebForm3</title>
<SCRIPT LANGUAGE="javascript">
function doSelectChange(el,dest) {
dest.value = el.options[el.selectedIndex].text
}
function lookupItem(el,dest) {
var curValue = el.value.toLowerCase()
var found = false;
var index = dest.selectedIndex;
var numOptions = dest.options.length;
var pos = 0;
// Repeat until found or end of list is reached
while ((!found) && (pos < numOptions)) {
// Do comparisons in lowercase
found = (dest.options[pos].text.toLowerCase().indexOf(curValue)==0)
if (found)
index = pos;
pos++;
}
if (found) // Updated listbox
dest.selectedIndex = index;
}

function goValue(el) {
var where;
if (el.selectedIndex > -1) {
// Make sure there is a selection
where = el.options[el.selectedIndex].value;
window.open(where)
}
}


</SCRIPT>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<P>
<asp:textbox id="textInput" runat="server"></asp:textbox></P>
<P>
<asp:ListBox id="selectInput" runat="server" Width="184px" Height="112px">
<asp:ListItem Value="1">Uno</asp:ListItem>
<asp:ListItem Value="2">dOS</asp:ListItem>
<asp:ListItem Value="3">Tres</asp:ListItem>
<asp:ListItem Value="4">Cuatro</asp:ListItem>
<asp:ListItem Value="5">Enero</asp:ListItem>
</asp:ListBox></P>
</SPAN>
</form>
</FORM>
</body>
</HTML>
Ejemplo.aspx.vb

Cita:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
textInput.Attributes.Add("ONKEYUP", "lookupItem(this,this.form.selectInput)")
selectInput.Attributes.Add("ONCHANGE", "doSelectChange(this, this.form.textInput)")
End If

End Sub
Salu2 y espero te sirva...
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #9 (permalink)  
Antiguo 29/06/2004, 15:51
 
Fecha de Ingreso: junio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
muchas gracias lo voy a probar.
  #10 (permalink)  
Antiguo 29/06/2004, 19:03
 
Fecha de Ingreso: junio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
ahhhh y me sale:

que "no se pudo volver a dar formato al documento debido a la linea 50. se restableció el formato original".

por que me aparece eso quie tengo que hacer?
  #11 (permalink)  
Antiguo 30/06/2004, 10:30
 
Fecha de Ingreso: junio-2004
Mensajes: 31
Antigüedad: 19 años, 10 meses
Puntos: 0
una pregunta ese codigo que tienes arriba, hace lo que yo quiero pero en el lisbox trae son los datos que pusistes ahi por codigo. pero yo quiero que lo haga por datos que traigo de la base de datos como hago????????????????
  #12 (permalink)  
Antiguo 09/07/2004, 00:08
 
Fecha de Ingreso: mayo-2004
Mensajes: 17
Antigüedad: 20 años
Puntos: 0
RootK el ejemplo de VB.NET, el de

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
textInput.Attributes.Add("ONKEYUP", "lookupItem(this,this.form.selectInput)")
selectInput.Attributes.Add("ONCHANGE", "doSelectChange(this, this.form.textInput)")
End If

End Sub

me falla al escribir algo en la caja de texto. ¿Sabes pq puede ser?.
  #13 (permalink)  
Antiguo 09/07/2004, 09:53
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Tu textbox se llama:

<asp:textbox id="textInput" runat="server"></asp:textbox>

Porque el code que puse funciona sin problemas.. no hay que modificar nada mas...

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #14 (permalink)  
Antiguo 10/07/2004, 02:04
 
Fecha de Ingreso: mayo-2004
Mensajes: 17
Antigüedad: 20 años
Puntos: 0
Si te escribo el codigo y el error

Codigo

<%@ Page Language="VB" %>
<script runat="server">

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
textInput.Attributes.Add("ONKEYUP", "lookupItem(this,this.form.selectInput)")
selectInput.Attributes.Add("ONCHANGE", "doSelectChange(this, this.form.textInput)")
End If
End Sub

</script>

<html>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<P>
<asp:textbox id="textInput" runat="server"></asp:textbox></P>
<P>
<asp:ListBox id="selectInput" runat="server" Width="184px" Height="112px">
<asp:ListItem Value="1">Uno</asp:ListItem>
<asp:ListItem Value="2">dOS</asp:ListItem>
<asp:ListItem Value="3">Tres</asp:ListItem>
<asp:ListItem Value="4">Cuatro</asp:ListItem>
<asp:ListItem Value="5">Enero</asp:ListItem>
</asp:ListBox></P>
</SPAN>
</form>
</FORM>
</body>
</HTML>

Error

Linea 12
Car 1
Error Se esperaba un objeto
Codigo 0

Un saludo y gracias.

PD: Seguro que será una tonteria.
  #15 (permalink)  
Antiguo 12/07/2004, 08:16
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Y tu javascript..??

Prueba con ésto:

Cita:
<%@ Page Language="VB" %>
<script runat="server">

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

MyBase.Load
If Not IsPostBack Then
textInput.Attributes.Add("ONKEYUP", "lookupItem(this,this.form.selectInput)")
selectInput.Attributes.Add("ONCHANGE", "doSelectChange(this, this.form.textInput)")
End If
End Sub

</script>

<html>
<head>
<SCRIPT LANGUAGE="javascript">
function doSelectChange(el,dest) {
dest.value = el.options[el.selectedIndex].text
}
function lookupItem(el,dest) {
var curValue = el.value.toLowerCase()
var found = false;
var index = dest.selectedIndex;
var numOptions = dest.options.length;
var pos = 0;
// Repeat until found or end of list is reached
while ((!found) && (pos < numOptions)) {
// Do comparisons in lowercase
found = (dest.options[pos].text.toLowerCase().indexOf(curValue)==0)
if (found)
index = pos;
pos++;
}
if (found) // Updated listbox
dest.selectedIndex = index;
}

function goValue(el) {
var where;
if (el.selectedIndex > -1) {
// Make sure there is a selection
where = el.options[el.selectedIndex].value;
window.open(where)
}
}


</SCRIPT>

</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<P>
<asp:textbox id="textInput" runat="server"></asp:textbox></P>
<P>
<asp:ListBox id="selectInput" runat="server" Width="184px" Height="112px">
<asp:ListItem Value="1">Uno</asp:ListItem>
<asp:ListItem Value="2">dOS</asp:ListItem>
<asp:ListItem Value="3">Tres</asp:ListItem>
<asp:ListItem Value="4">Cuatro</asp:ListItem>
<asp:ListItem Value="5">Enero</asp:ListItem>
</asp:ListBox></P>
</SPAN>
</form>
</FORM>
</body>
</HTML>
Hice pruebas y funciona...

Salu2
  #16 (permalink)  
Antiguo 14/07/2004, 05:50
 
Fecha de Ingreso: mayo-2004
Mensajes: 17
Antigüedad: 20 años
Puntos: 0
No habia insertado el codigo javascript. Pensaba que no era necesario en .NET.

Muchas gracias a todos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:08.