Cargando datos en formularios aspx con AJAX y Visual Studio 2003

No todos tenemos la suerte de poder trabajar con VS 2005 y ASP.NET AJAX, ASP.NET AJAX Control Toolkit para facilitar el desarrollo de aplicaciones ricas en cliente y de vez en cuando algún cliente te pide cosas como: "Quiero que cuando el usuario introduzca un código en la caja de texto se carguen una serie de datos en la página..." y piensas: "Si me pide esto para una página, no va a ser la única en la que me lo pidan", con lo cual te pones a pensar en como te montas algo para automatizar esa labor.

Bueno, pues el caso anterior fue mi caso y decidí atacarlo de la siguiente manera:

Primero: Crear una librería javascript para manejar AJAX a pelo (como decía José María Alarcón en algunos de sus post).

Segundo: Crear una página aspx que recepcione esas llamadas y devuelva la info en formato XML:

Aquí uno de los puntos fuertes fue el diseño del XML, en el creo un campo llamado name que corresponde con el nombre del txt a cargar y su valor, para que en el cliente el código javascript sepa a que campos debe cargar cada valor. Se pueden devolver todos los valores que se quiera en el xml (Incluir los campos que se quieran en la SQL, en una llamada a SAP...), ya que el código javascript del cliente se encargará de cargar solo aquellos que existan:

<?xml version="1.0" ?>
<response>
    <txt name="CustomerID">ALFKI</txt>
    <txt name="CompanyName">CLH</txt>
    <txt name="ContactName">Maria Anders</txt>
    <txt name="ContactTitle">Sales Representative</txt>
    <txt name="Address">Obere Str. 57</txt>
    <txt name="City">Berlin</txt>
    <txt name="Region"></txt>
    <txt name="PostalCode">12209</txt>
    <txt name="Country">Germany</txt>
    <txt name="Phone">6578</txt>
    <txt name="Fax">030-0076545</txt>
</response>

Otra cosa importante es que los campos de la página aspx se deben llamar como los de la base de datos anteponiéndoles el prefijo txt. Lo he hecho así para no tener que modificar mucho código en servidor, además que es realmente fácil e intuitivo a la hora de leer el fichero XML y saber que se trata de la estructura de la tabla Customers de la DB Northwind.

Y por último: Crear una función javascript que procese la respuesta XML de la página aspx y cargue los datos:

if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete')
{ 
    if (xmlHttp.status == 200)
    {
        objXml = new ActiveXObject("MSXML2.DOMDocument.3.0");
        objXml.async = false;
        objXml.loadXML(xmlHttp.responseText); 
        rootNode = objXml.documentElement;
        
        if(rootNode.childNodes.length > 0)
        {
            for (iCont=0; iCont<rootNode.childNodes.length; iCont++)
            {
                var txt = document.getElementById('txt'+rootNode.childNodes(iCont).getAttribute("name"));
                if (txt != null)
                {
                    document.getElementById('txt'+rootNode.childNodes(iCont).getAttribute("name")).value = rootNode.childNodes(iCont).text;
                }
            }
        }
        else
        {
            var camposTexto = document.forms[0].elements;

            for (x = 0; x < camposTexto.length; x++) 
            {
                if (camposTexto[x].type=='text')
                {
                    document.getElementById(camposTexto[x].name).value = '';
                }
            }
            alert('No se han encontrado coincidencias');
        }
    }
}

Bueno espero que os haya parecido interesante y espero críticas y comentarios.

Salu2.

Attachment: Geeks.Ajax.zip
Published 27/11/2006 13:16 por Luis Ruiz Pavón
Archivado en: ,
Comparte este post:
http://geeks.ms/blogs/lruiz/archive/2006/11/27/cargando-datos-en-formularios-con-ajax-en-visual-studio-2003.aspx

Comentarios

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

tiene algun ejemplo de cargar una imagen gift mientras SE PROCESA UN PROCEDIMIENTO ALMACENADO ????

Friday, December 15, 2006 6:36 PM por EDUARDO VALLE

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

Pues actualmente no, pero voy a ponerme manos a la obra para preparar un ejemplo.

Salu2

Saturday, December 16, 2006 9:16 PM por Luis Ruiz Pavón

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

Intento bajar el ejemplo pero me indica que ya no esta disponible. Me podrian ayudar colocandole disponible?. Gracias

Monday, January 29, 2007 8:26 PM por Lourdes

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

Arreglado!!!

Wednesday, February 21, 2007 11:21 AM por Luis Ruiz Pavón

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

Hola, me interesa tu ejemplo pero no lo puedo descargar, te agradeceria que lo vuelvas a poner..

Gracias

Mario

Monday, March 12, 2007 9:24 AM por mario

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

OK, ya lo he adjuntado, es que la web no he renovado el hosting ;)

alu2

Wednesday, March 28, 2007 3:59 PM por Luis Ruiz Pavón

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

Muy bueno tu ejemplo... Dejame ver si entiendo con la libreria de ajax...puedo utilizar todo los efectos de ajax desde el 2003 como si fuera el 2005?...

POr fa, aclarame ese detalle, y en todo caso cómo podria hacerlo....

He manjeado ajax y vs2005 insipientemente pero en mi trabajo usan el vs2003 así q si logro aplicar algunas buenas cosas del ajax seria muy bueno..

Espero puedas ayudarme

Wednesday, October 10, 2007 10:56 PM por JESUS

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

Si te refieres a AJAX Extensions, NO pero puedes utilizar otros frameworks o a pelo como en el ejemplo ;)

Salu2

Thursday, October 18, 2007 10:16 AM por Luis Ruiz Pavón

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

tendrás un ejemplo pero con vb no con c#?

Friday, February 29, 2008 8:41 PM por Roberto

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

ola trate de bajar el ejemplito , pero al parecer descarga pero no se puede abrir o esta vacio .. tu crees que puedas enviarmelo a este correo anapatriciagueb@hotmail.com

Wednesday, October 28, 2009 9:38 PM por patty

# re: Cargando datos en formularios aspx con AJAX y Visual Studio 2003

Usa Anthem .NET., te ahorras un monton.

sourceforge.net/.../anthem-dot-net

Thursday, October 29, 2009 5:59 AM por MIguel Angel Cahuan