• Domingo 22 de Diciembre de 2024, 15:45

Autor Tema:  Pasando Una Web Form Como Parametro  (Leído 4108 veces)

see07

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Pasando Una Web Form Como Parametro
« en: Martes 15 de Marzo de 2005, 23:13 »
0
Hola:
 A partir de una web form estoy enviando a ejecutar una función contenida en una clase, el código en la web form es:

bool que =  WUC_CreDes.Class1.Hay_PostBack(this, w1,w1cx, w1ID, w2, w2cx, w2ID);

En la clase es código es:

public static bool Hay_PostBack(WUC_CreDes.WebForm1 parent1, string w1,
         string w1cx,
         string w1ID,
         string w2,
         string w2cx,
         string w2ID)
      {
         string cual = "";   
         cual = HttpContext.Current.Session["par1"].ToString();
         parent1.Example.Controls.Clear();
         if(cual == w1)
         {
            Control control = parent1.Page.LoadControl(w1cx);
            control.ID = w1ID;
            parent1.Example.Controls.Add(control);
         }
         else
         {
            Control control = parent1.Page.LoadControl(w2cx);
            control.ID = w2ID;
            parent1.Example.Controls.Add(control);
         }
         return false;
      }

Como ven estoy pasando a la función contenida en la clase la WebForm1 para crear en ella WUC dinámicamente.

Pensando en una segunda web form, digamos WebForm2, si desde allí envío a ejecutar la función:

bool que =  WUC_CreDes.Class1.Hay_PostBack(this, w1,w1cx, w1ID, w2, w2cx, w2ID);

¿Cómo puedo hacer para que la función Hay_PostBack arriba mencionada funcione también para la WebForm2? ¿Qué cambio habría que hacerle ya que el primer parámetro es WUC_CreDes.Web Form1 parent1?

Les agradeceré sus repuestas.

Saludos. :D

A.L.

desgraciado

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
    • http://desgrasoft.esp.st/
Re: Pasando Una Web Form Como Parametro
« Respuesta #1 en: Miércoles 16 de Marzo de 2005, 03:36 »
0
declarandola como static no seria  :( ???

Form1.Hay_PostBack(); para usarla

asi creo que es

see07

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #2 en: Miércoles 16 de Marzo de 2005, 18:37 »
0
Ya está declarada como static. :D

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #3 en: Jueves 17 de Marzo de 2005, 13:46 »
0
Hola,

Cambia el tipo del parametro.

En ve de ser de tipo WUC_CreDes.WebForm1

que sea de tipo System.Web.UI.Page

Así, como todos los Web Form heredan de esa clase, te puede funcionar.

Claro que tendras que tener en cuenta que para acceder  a las propiedades de ese parametro en la función, quizá tengas que hacer un casting.


Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

see07

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #4 en: Viernes 18 de Marzo de 2005, 00:50 »
0
Estoy codificando:

public static bool Hay_PostBack(System.Web.UI.Page parent1, string w1,
string w1cx,
string w1ID,
string w2,
string w2cx,
string w2ID)
{
string fofoi = parent1.GetType().ToString();
if(fofoi == "ASP.WebForm1_aspx")
{

WUC_CreDes.WebForm1 frm = (WUC_CreDes.WebForm1) parent1;
}
else
{
if(fofoi == "ASP.WebForm2_aspx")
{
WUC_CreDes.WebForm2 frm = (WUC_CreDes.WebForm2) parent1;
}
}
Pero frm no es reconocido por el sistema.
En qué estoy mal???
 :comp:

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #5 en: Martes 22 de Marzo de 2005, 08:37 »
0
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.
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

see07

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #6 en: Martes 22 de Marzo de 2005, 16:18 »
0
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

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #7 en: Martes 22 de Marzo de 2005, 17:25 »
0
Creo

lucaseto

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #8 en: Martes 22 de Marzo de 2005, 17:26 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #9 en: Martes 22 de Marzo de 2005, 17:27 »
0
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
  1.  
  2. frm1.Example.Controls.Clear();
  3.  
  4.  

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
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

see07

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #10 en: Martes 22 de Marzo de 2005, 23:13 »
0
Muchísimas gracias por tu ayuda, amigo Guorker.
Saludos.
A.L. :smartass:

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Pasando Una Web Form Como Parametro
« Respuesta #11 en: Miércoles 23 de Marzo de 2005, 08:00 »
0
No hay nada que agradecer, a sido un placer.
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]