none
Actualizar vista MVC según valor de un campo RRS feed

  • Pregunta

  • Quiero hacer una vista de edición en la que cuando se escriba un valor para un campo automáticamente se rellene el resto si está en la base de datos. Por ejemplo, al poner la fecha si ya hay un registro con esa fecha lo cargue en la página de edición para poder modificarlo. ¿Cómo se haría? Gracias.
    lunes, 2 de abril de 2012 16:28

Respuestas

  • Básicamente hay dos posibilidades: hacerlo mediante una post al servidor, recargando toda la página, o hacerlo desde el cliente en mdo AJAX.

    En el primer caso, presentas una vista que exhiba únicamente la caja de texto en la que introduces el dato a buscar (el resto de los campos si quieres puedes pintarlos también, por estética, pero de momento no se van a usar). Una vez relleno ese campo, haces un POST, bien sea añadiendo un botón junto a la caja de texto para hacer un Submit, o bien añadiendo un poco de jaavscript que haga un submit al perder el foco la caja de texto. En cualquiera de los casos, el POST va a parar a un método de acción que recibe el valor tecleado, lo busca en base de datos, y devuelve una vista que es igual que la pantalla anterior, pero esta vez tiene todos los campos rellenos y habilitados.

    Si lo quieres hacer en modo AJAX, la pantalla es en general igual, pero el botón o el onblur lo que hacen es ejecutar un poco de javascript que llame mediante un XmlHttpRequest al método de acción en el servidor pasándole el valor de la caja de texto. Una de las formas más sencillas de programar esto consiste en llamar al método .load de jQuery; el propio método load recibe como argumento la zona de pantalla en la que hay que pintar los resultados (que corresponderá con el resto de la pantalla, donde están los campos a rellenar, que puede enmarcarse con un DIV). En este caso, el método de acción devolverá una vista parcial con el fragmento de pantalla a redibujar. Y voilá, la pantalla rellena todos los campos en cuanto indicamos el valor a buscar en nuestra caja de texto inicial.

    • Marcado como respuesta Eder Costa viernes, 26 de octubre de 2012 14:56
    lunes, 2 de abril de 2012 19:15