ASP.NET - Acceder Controles ascx

 
Vista:

Acceder Controles ascx

Publicado por Alejandro Lopez (17 intervenciones) el 05/11/2009 17:44:42
Hola que tal
Tengo una pagina que contiene un control de usuario ascx, el control de usuario a su vez contiene varios textbox y botones.

Se que la instruccion
TextBox t = (TextBox)this.cuDockin1.FindControl("TextBox1");
me sirve para acceder a los controles que estan en mi contro l de usuario.
Mi duada es la siguente.
Si nececito interactuar con varios de mis botones y yext box de mi ascx, Tengo que instanciarlos todos? Existe alguna forma de optimizar esto?
O a caso si nececito interqctua con varios controles de mi ascx no es conveniente crear el control de usuario?
Que me aconsejan
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:Acceder Controles ascx

Publicado por roger (311 intervenciones) el 05/11/2009 23:29:36
pues en realidad en ese caso no estas instanciando nuevamente, solo estas creando una variable (de tipo TextBox por ejemplo) y a esa variable le estas asignando una instancia ya existente que es la que esta en tu ascx, no veo problema alguno con esta forma de trabajo, pero si alguien opina lo contrario, esperemos los comentarios

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder Controles ascx

Publicado por Khristian (335 intervenciones) el 06/11/2009 00:56:40
No pues amigooooo

Si creas un control de usuario, no vas a estar usandol findControl para recuperar sus valores.... olvidate... te volverias loco con tanto codigo solo para acceder a un valor.

Cuando creas un control de usuario lo que se busca es encapsular una cierta funcionalidad (obviemante, que sea reutilizable en otras partes de la aplicacion).

Solo debes crear propiedades para ese control.

Por ejemplo:
El control tiene esta apariencia:

NOMBRE: ________________
EDAD: _______________
PAIS: ________________

Para acceder, a los valores creas variables publicas, donde al retornar un valor, pones codigo para que obtenga el valor actual.

Ejemplo: Una propiedad publica tendra dos caracterisitcas:

GET Para obtener un valor
... _nombre = me.txtNombre.text

SET Para establecer un valor
... me.txtNombre.text = value

value = parametro de entrada.


Despues en la aplicacion pones:

me.ucFicha._nombre = "SU NOMBRE"

dim nombre as string
nombre = me.ucFicha._nombre


ESPERO TE SIRVA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder Controles ascx

Publicado por m (121 intervenciones) el 07/11/2009 20:40:11
Los dos anteriores comentarios tienen razon.

Como Roger dice no estas creando el control, lo estas referenciando. Si solo
quieres leer los valores que introduce el usuario.

//Lo bueno es que hay diferentes maneras de hacerlo.

Me iria mas por la opcion de khristian, por que si quieres poner un valor por defualt,
lo agregas en la tag del user control y no en los controles contenidos en el.

Mas o menos en codigo C# iria asi, dentro de tu clase de control la variable _nombre
no es necesaria por que el control texto guarda el valor.
Tip. Por convencion de buenas practicas en programacion los nombres
de las propiedades publicas comienzan con Mayuscula.


#region Propiedades publicas
public string Nombre //nombre del usuario
{
get{return txtNombre.Text ;}
set {txtNombre.Tex=value;}
}
#endregion

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceder Controles ascx

Publicado por vcisneros (2 intervenciones) el 16/11/2009 23:56:15
O si es que quieres interactruar mas allá q solo con el texto (color,tamanho,etc) podrías poner en las propiedades a los controles y no solo a su texto

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar