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

Formulario web asp

Estas en el tema de Formulario web asp en el foro de .NET en Foros del Web. Hola a todos . Quiero hacer algo en unos formularios web, y la verdad es que no sé si es posible hacerlo como lo he ...
  #1 (permalink)  
Antiguo 27/01/2011, 15:02
 
Fecha de Ingreso: enero-2011
Ubicación: Santiago
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Formulario web asp

Hola a todos . Quiero hacer algo en unos formularios web, y la verdad es que no sé si es posible hacerlo como lo he pensado.
en el codebehind de un formulario se pueden definir los atributos de los campos (en este caso visual basic) de esta forma
Código:
Me.Campo1.text = "hola"
En cada formulario (que son muchos) puedo llenar la información de esta manera. Al mismo tiempo en la base de datos tengo todos los nombres de aquellos campos guardados y un procedimiento almacenado que me devuelve el nombre del campo con su contenido.

Teniendo lo anterior en cuenta, me imaginé que era posible hacer una función que tome cada nombre de campo y su contenido y lo agregue con una función de manera que resulta mucho más rápido y con un código mas limpio, de esta forma:
Código:
For count = 0 To datoFormPag.Rows.Count - 1
                            strCampo = datoFormPag.Rows(count).Item("cam_cod")
                            Me.strCampo.Text = Convert.ToString(datoFormPag.Rows(count).Item("res_respuesta"))

                        Next
Bueno evidentemente que lo anterior no funciona porque se está intentando poner un string en el lugar de un objeto. Y eso, mi consulta es que si es posible hacer lo que he expuesto, de esta u otra manera.

De antemano gracias por leer y colaborar
  #2 (permalink)  
Antiguo 28/01/2011, 10:36
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 10 meses
Puntos: 9
Respuesta: Formulario web asp

Muy buenas.
Bien, la idea es buena, per fallas en algún concepto.
El código deberías convertirlo en algo parecido a esto:
Código VB.NET:
Ver original
  1. Dim miControl As Control
  2. For count = 0 To datoFormPag.Rows.Count - 1
  3.   strCampo = datoFormPag.Rows(count).Item("cam_cod")
  4.   If Not Me.Controls(strCampo) Is Nothing Then
  5.     miControl = Me.Controls(strCampo)
  6.     miControl.Text = Convert.ToString(datoFormPag.Rows(count).Item("res_respuesta"))
  7.   End If
  8. Next
Espero que te sirva.
Saludos!
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 28/01/2011, 12:07
 
Fecha de Ingreso: enero-2011
Ubicación: Santiago
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Formulario web asp

Cita:
Iniciado por moNTeZIon Ver Mensaje
Muy buenas.
Bien, la idea es buena, per fallas en algún concepto.
El código deberías convertirlo en algo parecido a esto:
Código VB.NET:
Ver original
  1. Dim miControl As Control
  2. For count = 0 To datoFormPag.Rows.Count - 1
  3.   strCampo = datoFormPag.Rows(count).Item("cam_cod")
  4.   If Not Me.Controls(strCampo) Is Nothing Then
  5.     miControl = Me.Controls(strCampo)
  6.     miControl.Text = Convert.ToString(datoFormPag.Rows(count).Item("res_respuesta"))
  7.   End If
  8. Next
Espero que te sirva.
Saludos!
Muchas gracias, esto me orienta por lo menos porque no conocía esta clase Control. No funciona el código porque Me.Controls(strCampo) necesita un entero ¿Existe una forma de llamar un control por su id de forma que resulte como un array asociativo?
  #4 (permalink)  
Antiguo 28/01/2011, 12:32
 
Fecha de Ingreso: enero-2011
Ubicación: Santiago
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Formulario web asp

ya me resultó, haciendo unas pequeñas modificaciones

Código vb:
Ver original
  1. Dim miControl As Control
  2.                         For count = 0 To datoFormPag.Rows.Count - 1
  3.                             strCampo = datoFormPag.Rows(count).Item("cam_cod")
  4.                             If Me.Controls.Count > 1 Then
  5.                                 miControl = Me.FindControl(strCampo)
  6.                                 If miControl.GetType.ToString = "System.Web.UI.WebControls.TextBox" Then
  7.                                     CType(miControl, TextBox).Text = datoFormPag.Rows(count).Item("res_respuesta")
  8.                                 End If
  9.                             End If
  10.                         Next

Etiquetas: asp, codebehind, tag, formulario
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:16.