Tengo un datagrid al que le he añadido un textbox en una columna de la siguiente forma:
Código:
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:<asp:TemplateColumn> <ItemTemplate> <asp:TextBox id="txtCant" cssClass="txtCant" MaxLength="2" runat="server"></asp:TextBox> </ItemTemplate> </asp:TemplateColumn>
Código:
El problema está en que txtCant.UniqueID me devuelve valores del tipo:Dim txtCant As TextBox = CType(e.Item.Cells(4).FindControl("txtCant"), TextBox) Dim txtCantId As String = txtCant.UniqueID ... imgMenos.Attributes.Add("onClick", "decrementar('" & txtCantId & "')")
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:
Así que cuando intento acceder a ese textbox con javascript mediante<input name="GridArticulos:_ctl2:txtCant" type="text" maxlength="2" id="GridArticulos__ctl2_txtCant" class="txtCant" />
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.