En este post veremos el cdigo de ejemplo de una peticin AJAX (usando jQuery) que nos
devolver una coleccin de objetos complejos.
Hace varios meses escrib un articulo (AJAX jQuery en ASP.Net) donde comentaba las bases del
uso de AJAX con jQuery, pero en aquel artculo usamos un ejemplo bien sencillo para una mejor
comprensin.
En este post intento ser un poco mas prctico y explicaremos un ejemplo de peticin AJAX ms
parecido a lo que nos encontramos en la vida real, aunque eso s, un poco ms complejo (pero
solo un poco, muy poco)
$('#tablaContactos').empty();
$('#tablaContactos').append('<tr>
<td><b>ID</b></td><td><b>Nombre</b></td>
<td><b>Telefono</b></td><td><b>EMail</b></td>
</tr>');
for (var i = 0; i < contactos.length; i++) {
$('#tablaContactos').append('<tr>' +
'<td>' + contactos[i].IdContacto + '</td>' +
'<td>' + contactos[i].Nombre + '</td>' +
'<td>' + contactos[i].Telefono + '</td>' +
'<td>' + contactos[i].Email + '</td>' +
'</tr>');
}
},
error: function (result) {
alert('ERROR ' + result.status + ' ' + result.statusText);
}
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<input type="button" id="btnObtContactos" value="Obtener Contactos" /> <br/><br/>
<table id='tablaContactos'></table>
</form>
</body>
</html>
class Contacto
int IdContacto { get; set; }
string Nombre { get; set; }
string Telefono { get; set; }
string Email { get; set; }
type: "POST": Con esto estamos especificando el tipo de peticin AJAX (HTTP Verb) que
haremos al servidor (GET o POST). En nuestro caso hemos usado el mtodo POST.
direccin url del mtodo donde est alojado nuestro servicio web (url / mtodo a invocar).
En nuestro caso es un PageMethod (ObtenerContactos) que hemos definido en la propia
pagina (JQAjaxArrayJSon.aspx) por simplicidad.
data: "{}": Esta propiedad contiene los datos que sern enviados al servidor. En nuestro
dataType: "json": Esta propiedad contiene el tipo de dato que esperamos recibir desde el
servicio invocado. En nuestro caso JSON evala la respuesta y nos retorna un objeto
javascript.
Por ltimo seteamos success y error, asocindole las funciones que deben ejecutarse al
terminarse de procesar la peticin AJAX, si todo fue bien se ejecutar la funcin success,
de lo contrario ejecutar la asociada a error. En la funcin annima asociada a success lo
que hacemos es obtener el Array JSON y llenar la tabla tablaContactos, pero no
comentar ms de esto pues no es el objetivo de este artculo.
Luego de esto solo queda comentar el cdigo C#, donde est el PageMethod ObtenerContactos,
que no hace nada complicado, solo crea una lista de contactos (List<Contacto>) que devuelve.
Nota: En este ejemplo utilizamos un PageMethod para hacer la llamada jQuery AJAX, pero
tambin podramos haber usado un Web Services, WCF, o una simple pgina.