Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2006, 06:14
Scho
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 9 meses
Puntos: 1
Problema rarísimo con UniqueID de un textbox

Saludos a tod@s!
Tengo un datagrid al que le he añadido un textbox en una columna de la siguiente forma:

Código:
<asp:TemplateColumn>
  <ItemTemplate>
    <asp:TextBox id="txtCant" cssClass="txtCant" MaxLength="2" runat="server"></asp:TextBox>
  </ItemTemplate>
</asp:TemplateColumn>
Por otro lado, con javascript, intento acceder a ese textbox al pulsar sobre una imagen que también tengo en el datagrid. Para ello en ItemDataBound tengo:
Código:
Dim txtCant As TextBox = CType(e.Item.Cells(4).FindControl("txtCant"), TextBox)
Dim txtCantId As String = txtCant.UniqueID
...
imgMenos.Attributes.Add("onClick", "decrementar('" & txtCantId & "')")
El problema está en que txtCant.UniqueID me devuelve valores del tipo:
GridArticulos:_ctl2:txtCant, GridArticulos:_ctl3:txtCant, GridArticulos:_ctl4:txtCant, ...
Y sin embargo el identificador que tiene el textbox en el HTML es del tipo:
GridArticulos__ctl2_txtCant, GridArticulos__ctl3_txtCant, GridArticulos__ctl4_txtCant,... (lo mismo pero cambiando los ":" por "_")
Es decir, en el HTML tengo algo así:
Código:
<input name="GridArticulos:_ctl2:txtCant" type="text" maxlength="2" id="GridArticulos__ctl2_txtCant" class="txtCant" />
Así que cuando intento acceder a ese textbox con javascript mediante
document.getElementById(GridArticulos:_ctl2:txtCan t) no funciona.

Sé que se podría solucionar simplemente remplazando los ":" por "_", pero me extraña mucho el problema y me gustaría saber que es lo que estoy haciendo mal.

Muchas gracias a todos. Un saludo.