Los que programamos en .NET aplicativos web, vemos que en .NET vienen controles de servidor ya hechos como son el dropdownlist, gridview, etc.
Lo primero que pienso: "Oh todo ya viene hecho!, que fácil se me va hacer la vida".
Es cierto es fácil, pero a la hora que el usuario que interactúe y vea realmente como funcionan esos componentes dirá algo como: "Porqué se recarga la página, está muy lento, no me gusta...."
Es por ello que la tendencia ahora es programar todo con JQuery y dejar de lado los controles de servidor previamente mencionados:
Se los pongo de otro modo:
Caso A: DropDownList
El evento IndexChanged de un DropDownList, para activarse, debe llamar a un postback (AutoPostBack="True", y regrescar toda la página, pero al hacer esto no solo estamos golpeando la rapidez del sistema, sino que afectamos a otros componentes en el postback.
Es mejor usar una etiqueta <select> con la opción runar="server" y posteriormente programar su evento de cambio con JQuery.
<select id="midropdownlist" runat="server">
$( "#midropdownlist" ).change(function() {
//Hacer mi lógica
});
*La propiedad runat="server" sirve para que en el codebehind podamos asignarle valores a este control:
Public Sub PonValor()
midropdownlist.Items.Add("Opción 1")
midropdownlist.Items(0).Value="1"
midropdownlist.Items.Add("Opción 2")
midropdownlist.Items(1).Value="2"
En Sub
Caso B: GridView
Al igual que un dropdownlist, el evento index changed depende de la ejecución de un postback. El reemplazo de éste sería una etiqueta <table>.
<table id="mitabla">
<tr>
<td>
Hola, Soy una columna
</td>
</tr>
</table>
Para este caso, la librería de JQuery que uso es la siguiente:
https://datatables.net/
Permite con poco código generar tablas dinámicas desde lado del cliente, su uso es totalmente simple y muy configurable.
Si además de lo anteriormente mencionado añadimos los efectos de JQuery y su control multinavegador, vemos que es una mejor opción en cuanto a calidad de software.
Recuerden que para hacer valer nuestro trabajo hay que esforzarnos para diferenciarnos del resto.
Saludos.