Obtener valores de controles en páginas ASPX

14/02/2005 - 10:07 por Anonimo | Informe spam
Hola, tengo una página ASPX que contiene un control
Panel, el cual contiene a su vez varios controles de tipo
TExtBox, dropdownlist, radiobutton, etcétera.

La cuestión es que quiero de forma genérica obtener en un
momento determinado todos los valores de los controles
del panel.

Tengo que hacer un foreach para Panel.Controls, pero
luego cómo puedo conseguir los valores de los controles
sabiendo que los hay de tipos muy diferentes ?

Tendría que hace un switch por cada tipo ? No me puedo
evitar eso yque sea algo más elegante ?.

Gracias.
 

Leer las respuestas

#1 A.Poblacion
14/02/2005 - 11:22 | Informe spam
Si la propiedad que quieres sacar es la misma por cada control, por ejemplo,
siempre la propiedad Text, entonces basta que los recorras con un bucle, que
la variable del bucle sea de tipo Control, y preguntar por el .Text del
control.
Pero probablemente donde dices "conseguir los valores de los controles", lo
que quieres decir es que quieres leer aquella propiedad del control que sea
representativa de la acción emprendida por el usuario. Es decir que, por
ejemplo, si el control es un TextBox quieres la proipedad Text, si es un
CheckBox quieres la propiedad Checked, y si es un DropDownList quieres la
propiedad SelectedIndex. Esto no hay ninguna forma de que el sistema lo sepa
por sí solo si tú no se lo dices. Asi que no tienes más remedio que poner un
switch en el que expreses por cada tipo de control cuál es la propiedad que
quieres leer.
La única alternativa que se me ocurre es que en algún sitio proporciones una
tabla que empareje cada tipo de control con la propiedad que quieres leer, y
dentro del bucle que recorre los controles utilices Reflection para sacar de
cada control la propiedad que indique la tabla. Pero no creo que tengas
tantos tipos distintos de controles como para que esto merezca la pena, asi
que probablemente te resulte más simple meter el switch.

wrote in message
news:2b2301c51274$92413360$
Hola, tengo una página ASPX que contiene un control
Panel, el cual contiene a su vez varios controles de tipo
TExtBox, dropdownlist, radiobutton, etcétera.

La cuestión es que quiero de forma genérica obtener en un
momento determinado todos los valores de los controles
del panel.

Tengo que hacer un foreach para Panel.Controls, pero
luego cómo puedo conseguir los valores de los controles
sabiendo que los hay de tipos muy diferentes ?

Tendría que hace un switch por cada tipo ? No me puedo
evitar eso yque sea algo más elegante ?.

Gracias.

Preguntas similares