ClientIDMode en ASP.Net 4.0
La próxima versión de asp.net introducirá un cambio que creo será agradecido por muchos desarrolladores, y es la posibilidad de poder controlar la generacion de los IDs de los controles, de manera que podamos evitar las típicas cadenas “ctl00_ctl…” etc. que tanto dificultan el acceso DOM a los elementos mediante javascript o librerías como jQuery o Mootools.
El modo por defecto seguirá siendo el que ya conocemos, pero se podrá cambiar a nivel de página a alguno de los siguientes valores:
- Static el ID no tendrá antepuesta la concatenación de los identificadores de los contenedores padres, lo que facilita el acceso a un control que se puede encontrar en diferentes páginas en diferentes tipos de contenedores, facilitando la programación en el cliente.
- Predictable muy útil para controles con plantillas de repetición (item templates), como por ejemplo un Datalist o un Gridview.
- Inherit el control heredará el modo que use su control padre.
- AutoID el modo habitual como en cualquier versión de asp.net
Como hemos comentado esto se puede hacer a nivel de página
<%@ Page Language=”C#” AutoEventWireup=”true”
CodeFile=”Default.aspx.cs”
Inherits=”_Default”
ClientIDMode=”Predictable” %>
o a nivel de web.config para todo el sitio
<system.web>
<pages clientIDMode=“Predictable“>pages>
system.web>
Eso sí, cuidado de no generar IDs que no sean únicos. Ahora esto es nuestra responsabilidad si escogemos algunos de los modos que nos permiten controlar este aspecto.
Sería además una delicia que esto se pudiera hacer también con SharePoint 2010, que para customizarlo con jquery o similares ofrece a veces un acceso farragoso a los controles.
Saludos