CLR: .Net / Mono / Boo / Otros CLR > C#

 Pasando Una Web Form Como Parametro

<< < (2/3) > >>

Güorker:
Hola de nuevo,

a que te refieres cuando dices que frm no es reconocido por el sistema?

Quieres decir que está a null? o que te dice que no existe?

Observando tu codigo me he fijado en que declaras frm dentro del if o del else segun la cadena de fofoi, que contiene el tipo de datos de parent. Lo que pasa que si intentas hacer referencia a frm fuera del if o del else, no podrás ya que estas fuera del ambito de declaración de frm.

a ver si te sirve de algo.

see07:
Hola Guorker:
Siguiendo to consejo mi código queda ahora así:

public static bool Hay_PostBack(System.Web.UI.Page parent1, string w1,
            string w1cx,
            string w1ID,
            string w2,
            string w2cx,
            string w2ID)
      {
            WUC_CreDes.WebForm1 frm1;
            WUC_CreDes.WebForm2 frm2;

            string fofoi = parent1.GetType().ToString();
            if(fofoi == "ASP.WebForm1_aspx")
            {
               frm1 = (WUC_CreDes.WebForm1) parent1;
   frm1.parent1.Example.Controls.Clear();
}
}

Sin embargo en la última línea:    frm1.parent1.Example.Controls.Clear();
Me da el error: 'WUC_CreDes.WebForm1' no contiene una definición paera 'parent1'.

Example es un place holder contenido tanto en WebForm1 como en WebForm2.

Agradeceré vuestra ayuda. :hola:

A.L.

lucaseto:
Creo

lucaseto:
Creo que es error de sintaxis Parent

y no parent1

Por que ya esta utilizando una propi edad del form y no una variable

Güorker:
Hola otra vez,

Parece ser que te has liado un poco con eso de los castings y demas.

Creo que para acceder al placeholder Example solo debes poner lo siguiente:

--- Código: Text --- frm1.Example.Controls.Clear();  
Ya que con lo que tu habias escrito estabas diciendo que el objeto frm1 que es de tipo WUC_CreDes.WebForm1, tiene un atributo llamado parent1.

Para que entiendas un poco esto del casting te voy a explicar lo siguiente:

Imagina que parent1 es una persona. Tu función recibe como parametro a esa persona, pero no sabes si es chico o chica.

Para ello le tocas en sus partes (podría ser como tu has puesto: if(fofoi == "ASP.WebForm1_aspx")), y de esta manera ya sabes si es chico o chica. Así que en estos momentos es cuando haces el casting; es como si dijeras:

-Mira parent1, como se que eres chico, ahora te voy a llamar juan- en el programa "frm1"; y en el caso de que sea chica se llamará "frm2"

Por lo que una vez hecho el casting, no puedes hacer: juan.persona.pelo = rubio porque juan no tiene un atributo llamado persona, sino que juan es un objeto que hereda de persona, por lo que hay que hacer juan.pelo = amarillo

Espero haberte aclarado algo y no haberte liado mas.

Saludos y espero que te funcione

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa