
El código que pueden ver en este post hace varias cosas que son muy típicas en cualquier aplicación Web , como llenar un dropdownlist en la carga inicial, llenar otro dropdownlist en función del valor del primero, y crear una tabla con algunos valores, la diferencia es que todo lo haremos del lado del cliente usando el framework javascript JQuery y comunicándonos con algún web services que nos devolverá los datos que necesitamos en formato JSON.
Si todavía alguno se pregunta cual es la ventaja de hacer esto con JQuery y del lado del cliente, pues dicha ventaja esta en que nos ahorramos las idas y venidas al servidor y pasar por todo el ciclo de carga de la pagina cuando hace postback lo cual implica envió innecesarios de datos al servidor aunque estemos usando Ajax o un updatepanel, por lo que hacerlo con JQuery y Ajax siempre será mas eficiente.
Los controles de nuestro aspx lucirán algo asi:
También será necesario crear el web services con los métodos que nos devolverá la información que necesitamos:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using TestJquery.Entidades;
namespace TestJquery.Servicios
{
///
/// Summary description for ServiciosJson
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class ServiciosJson : System.Web.Services.WebService
{
[WebMethod]
public List GetCategorias()
{
List Categorias = new List()
{ new Categoria {Codigo =”1″, Descripcion =”CategoriaA”},
new Categoria {Codigo =”2″,Descripcion =”CategoriaB”}
};
return Categorias;
}
[WebMethod]
public List
GetProductos(string categoria)
{
List
Productos = new List
();
Productos = GetListaProductos();
var a = from c in Productos where c.Categoria == categoria select c;
return a.ToList();
}
[WebMethod]
public List
GetProductosDetalle(string codigo)
{
List
Productos = new List
();
Productos = GetListaProductos();
var a = from c in Productos where c.Codigo == codigo select c;
return a.ToList();
}
public List
GetListaProductos()
{
List
Productos = new List
()
{ new Producto {Codigo =”1″, Descripcion =”ProductoA”,Precio =”100″, Categoria =”1″},
new Producto {Codigo =”2″,Descripcion =”ProductoB”,Precio =”200″, Categoria =”2″},
new Producto {Codigo =”3″, Descripcion =”ProductoC”,Precio =”300″, Categoria =”1″},
new Producto {Codigo =”4″,Descripcion =”ProductoD”,Precio =”400″, Categoria =”2″}
};
return Productos;
}
}
}
Las entidades:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace TestJquery.Entidades
{
public class Categoria
{
public string Codigo;
public string Descripcion;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace TestJquery.Entidades
{
public class Producto
{
public string Codigo;
public string Descripcion;
public string Precio;
public string Categoria;
}
}
Y eso es todo, en el ejemplo podemos ver como nuestro web services nos puede devolver cualquier objeto en formato JSON y acceder a las propiedades de dicho objeto o lista de objetos desde nuestra página aspx usando JQuery.
El Código de este pequeño ejemplo lo pueden descargar de aquí.

Excelente ejemplo.
muchas gracias por el post.
De nada ha sido un placer poder ayudarte
Es un proyecto un poco avanzado vale la pena descargarlo y ver la aplicacion en funcionamiento, el sistema tiene dos listas la cual cuando se selecciona un PAIS en el otro select apareceran las ciudades de este pais, ademas de esto podemos ingresar paises, ciudades, borrar paises, borrar ciudades todo de forma ASINCRONICA con JQUERY, php, mysql y un poco de ajax. espero el proyecto sea de su total agrado pueden ver la aplicacion en funcionamiento aqui: http://www.getvay.com/SeleccionAvanzado/index.php pueden ver un video aqui: http://www.youtube.com/watch?v=Iv4kN7X2Toc&feature=channel y lo pueden descargar de aqui http://www.getvay.com/pg/file/macs1407/read/1792/selects