none
Hover a elementos y consulta Sql RRS feed

  • Pregunta

  • Buen dia a todos, me gustaria escuchar sus sugerencias, para ver si lo que planteo se puede lograr, o que me pueden sugerir.

    Al momento de hacer un hover sobre algun elemento, ya sea un span, o un botton, se puede ejecutar alguna funcion javascript que me dispare codigo de asp, para ejecutar una consulta en sql y retornar un texto?.

    Mi intencion es de que cuando pase el mouse sobre un elemento, se ejecute una consulta Sql y ademas en el hover se despliegue esa informacion que me devuelve la consulta.

    Les Agradeceria su respuesta.

    martes, 2 de abril de 2019 17:46

Respuestas

  • Se puede, pero hay muy poco ASP.NET en ello. La mayor parte tiene que hacerse en javascript.

    • Lo primero, conectarías en javascript el evento onmouseover: https://www.w3schools.com/jsref/event_onmouseover.asp
    • Después, en el manejador del evento meterías algo de AJAX para llamar al servidor. Lo más sencillo probablemente sea usar el $.ajax de jQuery: https://api.jquery.com/jQuery.ajax/
    • Desde el AJAX harías una llamada a alguna URL en el servidor. Podría ser un método estático en el mismo aspx, pero quizá te resulte más simple usar un .ashx. O podrías agregar una API de tipo REST al mismo website usando WebApi2, que es compatible con WebForms.
    • En el método servidor, haces la consulta a base de datos, y devuelves el resultado encapsulado en un JSON.
    • Ese resultado retorna al método javascript que hizo la llamada en AJAX. Desde ahí deserializas el JSON y usas el DOM para dibujar los resultados donde quieras presentarlos en pantalla.

    Como puedes apreciar, no es algo trivial. Requiere escribir código cliente y código servidor y hay que tener conocimientos de todas las tecnologías implicadas.

    Si no son muchos los elementos de la pantalla en los que quieres desplegar información al hacer el hover, puede que te resulte más simple consultar toda la información de golpe antes de servir la página al navegador y dejarlo todo embebido en el html (por ejemplo, usando tooltips). Eso trasmite más información, porque se envía el tooltip de todos los controles en lugar de generar sobre la marcha aquellos sobre los que hagas hover. Pero a cambio es mucho más sencillo de programar (se puede hacer todo en lado servidor sin usar javascript), y tiene la ventaja de que los tooltips son instantáneos para el usuario, puesto que ya están precargados.

    • Marcado como respuesta Pollokullos jueves, 4 de julio de 2019 15:47
    martes, 2 de abril de 2019 19:07

Todas las respuestas

  • Se puede, pero hay muy poco ASP.NET en ello. La mayor parte tiene que hacerse en javascript.

    • Lo primero, conectarías en javascript el evento onmouseover: https://www.w3schools.com/jsref/event_onmouseover.asp
    • Después, en el manejador del evento meterías algo de AJAX para llamar al servidor. Lo más sencillo probablemente sea usar el $.ajax de jQuery: https://api.jquery.com/jQuery.ajax/
    • Desde el AJAX harías una llamada a alguna URL en el servidor. Podría ser un método estático en el mismo aspx, pero quizá te resulte más simple usar un .ashx. O podrías agregar una API de tipo REST al mismo website usando WebApi2, que es compatible con WebForms.
    • En el método servidor, haces la consulta a base de datos, y devuelves el resultado encapsulado en un JSON.
    • Ese resultado retorna al método javascript que hizo la llamada en AJAX. Desde ahí deserializas el JSON y usas el DOM para dibujar los resultados donde quieras presentarlos en pantalla.

    Como puedes apreciar, no es algo trivial. Requiere escribir código cliente y código servidor y hay que tener conocimientos de todas las tecnologías implicadas.

    Si no son muchos los elementos de la pantalla en los que quieres desplegar información al hacer el hover, puede que te resulte más simple consultar toda la información de golpe antes de servir la página al navegador y dejarlo todo embebido en el html (por ejemplo, usando tooltips). Eso trasmite más información, porque se envía el tooltip de todos los controles en lugar de generar sobre la marcha aquellos sobre los que hagas hover. Pero a cambio es mucho más sencillo de programar (se puede hacer todo en lado servidor sin usar javascript), y tiene la ventaja de que los tooltips son instantáneos para el usuario, puesto que ya están precargados.

    • Marcado como respuesta Pollokullos jueves, 4 de julio de 2019 15:47
    martes, 2 de abril de 2019 19:07
  • Muchas gracias por su apoyo, no soy muchos los elementos en los que deseo realizar ese evento, pero estoy viendo opciones ya que actualmente es un proyecto en asp classic, y quiero trasladarlo a .net, voy a considerar los puntos que me comenta.
    martes, 2 de abril de 2019 19:23