Foros del Web » Programación para mayores de 30 ;) » .NET »

Page.Controls

Estas en el tema de Page.Controls en el foro de .NET en Foros del Web. Hola a todos! Necesito saber como es la sentencia que me devuelve el tipo de control al hacer un foreach (Control ctrl in Page.Controls). Es ...
  #1 (permalink)  
Antiguo 14/03/2005, 12:17
 
Fecha de Ingreso: septiembre-2004
Ubicación: Capitán Bermúdez, Santa Fe, Argentina
Mensajes: 6
Antigüedad: 20 años, 2 meses
Puntos: 0
Page.Controls

Hola a todos!
Necesito saber como es la sentencia que me devuelve el tipo de control al hacer un foreach (Control ctrl in Page.Controls).
Es decir, que la sentencia me devuelva "TextBox" o "Button", etc.
He probado con casi todos los metodos y propiedades pero no encuentro como solucionarlo.
Muchas gracias por su ayuda.
Ismara.
  #2 (permalink)  
Antiguo 14/03/2005, 12:31
Avatar de RicaJ0625  
Fecha de Ingreso: noviembre-2004
Ubicación: La Chorrera, Panamá
Mensajes: 86
Antigüedad: 20 años
Puntos: 0
No hay ninguna función que haga esto.

Debes de hacer tu propia función que te retorne el tipo utilizando TypeOf

Ejemplo:

VB.Net
Código:
If TypeOf _Control Is TextBox Then
	...
ElseIf TypeOf _Control Is Label Then
	...
ElseIf TypeOf _Control Is ListBox Then
	...
ElseIf ...
	...
End If
 


C#
Código:
if (_Control is TextBox)
{
...
}
else if (...)
{
 
} 
  #3 (permalink)  
Antiguo 14/03/2005, 12:42
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
En realidad si existe una funcion, TypeName, esta te devuelve una cadena con el nombre de clase de un objeto. Ejemplo:

Dim a As String = TypeName(TuControl)

Si en este caso "TuControl" es un TextBox entonces el valor de a sera "TextBox", aunque si lo que quieres es comprobar el tipo de un objeto es recomendable que lo hagas con TypeOf en lugar de comparar cadenas obtenidas con el TypeName puesto que es mucho más rápido (tal como te lo presentaron de ejemplo en la respuesta anterior).

Saludos!
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #4 (permalink)  
Antiguo 14/03/2005, 14:00
 
Fecha de Ingreso: septiembre-2004
Ubicación: Capitán Bermúdez, Santa Fe, Argentina
Mensajes: 6
Antigüedad: 20 años, 2 meses
Puntos: 0
Muchas gracias RicaJ0625 y Rony J.!
Voy a probar lo que me dicen y luego les cuento.
Saludos!
Ismara.
  #5 (permalink)  
Antiguo 14/03/2005, 15:35
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Cita:
No hay ninguna función que haga esto.
MM.. de hecho si la hay friend.. . así se puede hacer..

Cita:
For Each c As Control In Page.Controls
For Each child As Control In c.Controls
Response.Write(child.GetType.Name & "<br>")
Next
Next

Con ello devolverá si hay textbox, literalcontrols, button..etc..

Espero que sea lo que buscas.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
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 22:10.