Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO] problema con usercontrol

Estas en el tema de problema con usercontrol en el foro de ASPX (.net) en Foros del Web. Hola a todos, Os comento mi problema, es algo complicado de explicar: tengo un usercontrolA y dentro: usercontrolB tengo un usercontrolC y dentro: usercontrolB -usercontrolB ...
  #1 (permalink)  
Antiguo 15/05/2013, 08:21
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 13 años
Puntos: 2
problema con usercontrol

Hola a todos,

Os comento mi problema, es algo complicado de explicar:

tengo un usercontrolA y dentro: usercontrolB
tengo un usercontrolC y dentro: usercontrolB

-usercontrolB tiene varios textbox:
1) txtCodigoProducto
2) txtPrecioProducto
3) txtIVAProducto

Bien, txtCodigoProducto tiene :
onblur="Validarproducto()", de forma que cuando este textbox pierde el foco, llama a Validarproducto (javascript) y bueno ahí accede a ajax y retorna el precio y el IVA (eso funciona bien).

La cuestión es, que en la función de javascript Validarproducto() necesito recoger el codigo del producto para poder obtener los datos:

var codigoproducto=$("#ContentPlaceHolder1_usercontrolA _usercontrolB _txtCodigoProducto").val();

y para ello tengo que especificar: usercontrolA _usercontrolB _txtCodigoProducto

pero si lo llamo desde usercontrolC ya no funciona porque necesitaría:

usercontrolC _usercontrolB _txtCodigoProducto

No se como hacer para que al desencadenarse onblur pueda saber el usercontrol padre para acceder al campo.

Gracias de antemano.
  #2 (permalink)  
Antiguo 15/05/2013, 08:58
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 15 años, 1 mes
Puntos: 22
Respuesta: problema con usercontrol

Yo me he perdido :(
¿no te vale un <% response.write.. %> en medio del JavaScript?
__________________
@angelxab Twiiter
  #3 (permalink)  
Antiguo 15/05/2013, 09:16
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con usercontrol

Cita:
Iniciado por angel1993 Ver Mensaje
Yo me he perdido :(
¿no te vale un <% response.write.. %> en medio del JavaScript?
Antes de nada gracias por responder

Entiendo que te hayas perdido jeje, mi problema es acceder al campo txtCodigoProducto del usercontrolB desde javascript.

usercontrolB lo uso dentro de otros usercontrol, entonces a la hora de acceder al campo necesito saber el usercontrol contenedor por así decirlo, como puse en el primer post:

(codigo javascript:)
Código:
var codigoproducto=$("#ContentPlaceHolder1_usercontrolA _usercontrolB _txtCodigoProducto").val();
Si siempre pongo eso solo va a funcionar cuando este dentro de usercontrolA, pero cuando esta dentro de otro usercontrol ¿cómo hago referencia? si ya no es usercontrolA
  #4 (permalink)  
Antiguo 15/05/2013, 13:59
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 15 años, 1 mes
Puntos: 22
Respuesta: problema con usercontrol

ahhhhhhhhh, emmms...
Pues puedes crear una variable en el header que se llame "UserControlActual"
Luego que usercontrolA tenga en su interior
"<script>UserControlActual = "a"</script>"
Código Javascript:
Ver original
  1. var codigoproducto=$("#ContentPlaceHolder1_usercontrol" + usercontrolA  + "_usercontrolB _txtCodigoProducto").val();


Luego están los que dicen que no puedes meter <script> en el body.. supongo que Me.RegisterClientScriptBlock puede ayudarte, nunca lo he usado si te digo la verdad, me parece que consume demasiado, que es una pijada... pero míralo.
También puedes acceder al campo con getElementsByTagName y tal..
Yo personalmente uso <script> en body sin ningún tipo de remordimiento (Siempre y cuando sea necesario), prefiero meterlo en un .js o en el head.. pero tampoco lo tomo como obligación
__________________
@angelxab Twiiter
  #5 (permalink)  
Antiguo 16/05/2013, 01:33
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con usercontrol

hola de nuevo! voy a probar lo que me comentas del <script> a ver que tal.

Gracias!

Última edición por eamanesims; 16/05/2013 a las 01:40
  #6 (permalink)  
Antiguo 16/05/2013, 05:59
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con usercontrol

Se me olvidó comentar que la función javascript la tengo en otro archivo diferente... entonces no puedo acceder a la variable 'UserControlActual' :(

Por otro lado 'getElementsByTagName' es lo mismo que lo que yo hago pero con jquery , pero no funciona por lo que comentaba, en el momento que le quito el usercontrol contenedor del nombre (en este caso usercontrolA):

var codigoproducto=$("#ContentPlaceHolder1_usercontrol A _usercontrolB _txtCodigoProducto").val();

... no se como resolver esto
  #7 (permalink)  
Antiguo 16/05/2013, 07:03
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 15 años, 1 mes
Puntos: 22
Respuesta: problema con usercontrol

No.. con Jquery recibes un documento por ID
con getElemetsByTagName recibes una array de los objetos de X tipo
por ejemplo document.getElementsByTagName("a") recibes todos los <a.. osea todos los links..
__________________
@angelxab Twiiter
  #8 (permalink)  
Antiguo 16/05/2013, 07:45
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con usercontrol

Cita:
Iniciado por angel1993 Ver Mensaje
No.. con Jquery recibes un documento por ID
con getElemetsByTagName recibes una array de los objetos de X tipo
por ejemplo document.getElementsByTagName("a") recibes todos los <a.. osea todos los links..

tienes razón disculpame,leí rápido y me confundí con ducument.GetElementById..., voy a probar 'getElementsByTagName'
  #9 (permalink)  
Antiguo 16/05/2013, 07:50
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 15 años, 1 mes
Puntos: 22
Respuesta: problema con usercontrol

No.. con Jquery recibes un documento por ID
con getElemetsByTagName recibes una array de los objetos de X tipo
por ejemplo document.getElementsByTagName("a") recibes todos los <a.. osea todos los links..
__________________
@angelxab Twiiter
  #10 (permalink)  
Antiguo 17/05/2013, 02:53
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 13 años
Puntos: 2
Respuesta: problema con usercontrol

mmm... ¿por qué repetiste la respuesta? XD

Bueno ya lo he solucionado:

Código:
var codigoproducto= $("#txtCodigoProducto").val();
antes no me funcionaba porque me faltaba poner:
ClientIDMode="Static" en los campos a los que accedo de esta forma, por lo que he leído parece que asp le adjudica otro nombre, de esta forma le dices que se quede con el mismo que le pone el programador:

Código HTML:
<asp:TextBox ID="txtCodigoProducto" ClientIDMode="Static" runat="server" onblur="Validarproducto()"></asp:TextBox> 
Gracias por tu tiempo y ayuda angel1993 ;)
  #11 (permalink)  
Antiguo 17/05/2013, 06:47
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 15 años, 1 mes
Puntos: 22
Respuesta: problema con usercontrol

jajajajajajajajaja ¡NO SÉ QUE HA PASADO!
desde luego no he puesto los 2 mensajes adrede... no sé jajaja
Me alegro que ya te función

Saludos ;)
__________________
@angelxab Twiiter

Etiquetas: usercontrol
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:20.