Wrox Home  
Search P2P Archive for: Go

  Return to Index  

aspx_espanol thread: Problemas con el State


Message #1 by Rodrigo Albanese <ralbanese@z...> on Wed, 3 Jul 2002 15:30:42 -0300
Rodrigo,

A los efectos de optimizar aun mas el codigo, fijate que dentro del
foreach, estas haciendo dos castings:

>>>>If TypeOf objeto is TextBox Then

>>>>CType(objeto, TextBox).Text

usando el operador 'as' lo podes reducir a uno solo:
[C#]
TextBox tb =3D objeto as TextBox;
if(tb!=3Dnull)
	//manejar tb aca

saludos,
-Victor.



-----Original Message-----
From: Rodrigo Albanese [mailto:ralbanese@z...]
Sent: Thursday, July 04, 2002 6:13 PM
To: ASP.Net en Espa=F1ol
Subject: [aspx_espanol] RE: Problemas con el State


Listo, much=EDsimas gracias.
El c=F3digo para recorrer el valor de los textboxes me qued=F3a as=ED
Sub Button1_Click(sender As Object, e As EventArgs)
Label1.Text=3D""
Dim fila as TableRow
Dim celdas as TableCell
Dim objeto as Control
For each fila in Table1.Rows
 For each celdas in fila.Cells
  For each objeto in celdas.Controls
        If TypeOf objeto is TextBox Then
        Dim stringsita as String =3D CType(objeto, TextBox).Text
        label1.text &=3D stringsita
        Else
        Label1.Text &=3D objeto.GetType().ToString
        End If
  Next
 Next
Next
End Sub
Saludos..
-----Mensaje original-----
De: Victor Garcia Aprea [mailto:vga@o...]
Enviado el: Jueves, 04 de Julio de 2002 15:10
Para: ASP.Net en Espaqol
Asunto: [aspx_espanol] RE: Problemas con el State



Hola Rodrigo,
Hay un par de conceptos que tenes mezclados.
>>>>label1.text=3DTB00.Text
esto no se puede hacer ya que TB00 es solo la propiedad ID de tu control

pero no una variable definida en tu aplicacion. Si vos queres
referenciar un control por su ID, tenes primero que usar FindControl que

toma el ID del control a buscar como parametro y te devuelve un Control,

luego manejas ese control. Pero no confundas la propiedad ID de un
control con el nombre de una variable definida en tu aplicacion.
En el caso de tu ejemplo donde tenes una table y algunas celdas pueden
tener controles creados dinamicamente, tenes que recordar que cada
Control tiene una coleccion Controls donde estan sus controles "hijos",
de esta manera para encontrar un TextBox que insertaste dentro de una
celda podes ubicar la celda primero y luego ubicar el control que
quieras dentro de esa celda,
saludos,
-Victor.
-----Original Message-----
From: Rodrigo Albanese [mailto:ralbanese@z...]
Sent: Thursday, July 04, 2002 9:41 AM
To: ASP.Net en Espa=F1ol
Subject: [aspx_espanol] RE: Problemas con el State


Entiendo, pero el tema es que me parece que una tabla creada
program=E1ticamente no pasa los valores de los controles que residen
dentro de ella.
Por ejemplo si yo creo una tabla con un control dentro (un txtBox), un
bot=F3n para disparar el evento y un label para recibir el valor de un
txtbox de esa tabla, no funciona, este es el c=F3digo reducido:
<%@ Page Language=3D"VB" %>
<script runat=3D"server">
    Sub Page_Load(Sender As Object, E As EventArgs)
    Dim j as Integer
    dim ss as Integer
    For j =3D 0 to 3 'filas
    Dim r As New TableRow()
    for ss =3D 0 to 3 'columnas
    dim c as new Tablecell()
    dim tb as New TextBox()
     Tb.ID=3D"TB" & ss & j
     tb.Text =3D "TB" & ss & j
     c.Controls.Add(tb)
     r.Cells.Add(c)
    next
    Table1.Rows.Add(r)
    Next
    End Sub
   
    Sub Button1_Click(sender As Object, e As EventArgs)
    label1.text=3DTB00.Text 'ac=E1 da el error (Name 'TB00' is not
declared.) Aunque yo lo declar=E9 program=E1ticamente.
    End Sub
</script>
<html>
<head>
</head>
<body>
    <form runat=3D"server">
        <p>
            <asp:Table id=3D"Table1" runat=3D"server"></asp:Table>
        </p>
        <p>
            <asp:Label id=3D"Label1" runat=3D"server">Label</asp:Label>
        </p>
        <p>
            <asp:Button id=3D"Button1" onclick=3D"Button1_Click"
runat=3D"server" Text=3D"Button"></asp:Button>
        </p>
    </form>
</body>
</html>



-----Mensaje original-----
De: Victor Garcia Aprea [mailto:vga@o...]
Enviado el: Mi=E9rcoles, 03 de Julio de 2002 23:32
Para: ASP.Net en Espaqol
Asunto: [aspx_espanol] RE: Problemas con el State



Hola Rodrigo,
Proba con algo asi:
[C#]
//reemplazar WebForm1 por el ID de tu server-side form
Control frm =3D FindControl("WebForm1");
foreach(Control ctrl in frm.Controls)
{
        TextBox tb =3D ctrl as TextBox;
        if(!tb)
                //aca haces lo que quieras con tb
                tb.Text =3D "blah";
}
saludos,
-Victor.
-----Original Message-----
From: Rodrigo Albanese [mailto:ralbanese@z...]
Sent: Wednesday, July 03, 2002 3:31 PM
To: ASP.Net en Espa=F1ol
Subject: [aspx_espanol] Problemas con el State


Hola muchachos, les hago mi pregunta diaria... espero no molestar.
En la aplicaci=F3n que estoy haciendo creo una tabla 
program=E1ticamente, y
en algunas de sus celdas creo TextBoxes. La pregunta es, c=F3mo puedo
hacer para recuperar los valores de esos TextBoxes en el PostBack de la
p=E1gina?
Saludos, y muchas gracias.


 Rodrigo Albanese.
Enrique R. Zeni & C=EDa.
       SACIAFI.
---
Usted est=E1 suscrito a aspx_espanol como:
vga@o...
Para darse de baja, env=EDe un mensaje en blanco a
%%email.unsub%%
--- Change your mail options at http://p2p.wrox.com/manager.asp or to
unsubscribe send a blank email to


---
Usted est=E1 suscrito a aspx_espanol como:
ralbanese@z...
Para darse de baja, env=EDe un mensaje en blanco a
%%email.unsub%%
---
Usted est=E1 suscrito a aspx_espanol como:
vga@o...
Para darse de baja, env=EDe un mensaje en blanco a
%%email.unsub%%
--- Change your mail options at http://p2p.wrox.com/manager.asp or to
unsubscribe send a blank email to


---
Usted est=E1 suscrito a aspx_espanol como:
ralbanese@z...
Para darse de baja, env=EDe un mensaje en blanco a
%%email.unsub%%
---
Usted est=E1 suscrito a aspx_espanol como:
vga@o...
Para darse de baja, env=EDe un mensaje en blanco a
%%email.unsub%%
--- Change your mail options at http://p2p.wrox.com/manager.asp or to
unsubscribe send a blank email to


  Return to Index