• Domingo 22 de Diciembre de 2024, 15:10

Autor Tema:  Limpiar Un Place Holder Dentro De Una Clase  (Leído 2817 veces)

see07

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Limpiar Un Place Holder Dentro De Una Clase
« en: Jueves 10 de Marzo de 2005, 18:28 »
0
Hola:
Desde una clase pretendo limpiar un place holder contenido en una web form.
Para esto uso el código siguiente:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;


namespace WUC_CreDes
{
   public class Class1
   {
      public static bool Hay_PostBack()
      {
      WUC_CreDes.WebForm1 parent1 = (WUC_CreDes.WebForm1) this.Page;
      parent1.Example.Controls.Clear();
return false;   
      }
   }
}

Donde Example es mi place holder dentro de la web form.

Al compilar me envía el error: “La palabra clave ‘this’ no es válida en una propiedad estática, un método estático ni un inicializador de campo estático”.

¿Tiene alguien alguna idea acerca de cómo puedo lograr esto?

Les agradeceré su ayuda al respecto.

Saludos. :hola:

A.L.

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Limpiar Un Place Holder Dentro De Una Clase
« Respuesta #1 en: Viernes 11 de Marzo de 2005, 09:26 »
0
Hola see007,

Aqui hay varias cosas que deberías tener en cuenta.

-Un método estático es compartido por todas las instancias de una clase (objetos). Es decir, no existe una copia del metodo en cada objeto, por lo tanto un metodo estático no puede acceder a un atributo de un objeto concreto, porque no están en el mismo "sitio". Un metodo estático solo puede utilizar atributos estáticos de una clase.

-Por otro lado, al hacer this.Page, estas diciendo que this(en este caso Class1) tiene un atributo de tipo Page, y segun tu especificación esa clase no lo tiene.

Intentando entender lo que quieres hacer, te recomendaría que intentaras lo siguiente:

Código: Text
  1.  
  2. namespace WUC_CreDes
  3. {
  4.   public class Class1
  5.   {
  6.     public static bool Hay_PostBack(WUC_CreDes.WebForm1 parent1)
  7.     {
  8.       parent1.Example.Controls.Clear();
  9.       return false;
  10.     }
  11.   }
  12. }
  13.  
  14.  
  15.  

Y para llamar a ese metodo se debería hacer lo siguiente desde el WebForm1:
Código: Text
  1.  
  2. .....
  3. bool bHayPostBack = Class1.Hay_PostBack(this);
  4. .....
  5.  
  6.  

A ver si te sirve de algo.

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: Limpiar Un Place Holder Dentro De Una Clase
« Respuesta #2 en: Viernes 11 de Marzo de 2005, 22:26 »
0
Gracias Guorker:

En realidad si me sirvió.

Si ahora dentro de un WUC quiero ejecutar:

bool que =  WUC_CreDes.Class1.Hay_PostBack(this);

Debo sustituir la palabra "this" por WebForm1.ascx?

Te agradeceré tu apoyo con esto.

Saludos :hola:

A.L.

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Limpiar Un Place Holder Dentro De Una Clase
« Respuesta #3 en: Lunes 14 de Marzo de 2005, 10:04 »
0
Hola de nuevo,

No creo que debas sustituir this po eso que dices.

Si te fijas en la definición del metodo que te pasé, el único parametro que recibe ese metodo es un objeto de tipo  WUC_CreDes.WebForm1

Por lo que al llamar al metodo tienes que pasar una referencia de ese tipo. Si estas llamando a la función desde la pagina WebForm1.aspx, entonces debes dejar la palabra "this", en cambio si lo estas llamando desde un control de usuario que está incrustado en esa misma opagina, creo que deberias usar "this.Page", ya que este atributo obtiene la referencia a la pagina que contiene al control.

A ver que tal, suerte
[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: Limpiar Un Place Holder Dentro De Una Clase
« Respuesta #4 en: Lunes 14 de Marzo de 2005, 16:38 »
0
Hola amigo Guorker:
Hica la pregunta pensando si quizás hubiese otra manera de hacerlo ya que al hacerlo asi:
bool que =  WUC_CreDes.Class1.Hay_PostBack(this.Page);
me provoca el error:
Argumento '1' no se puede convertir de'System.Web.UI.Page' a 'WUC_CreDes.WebForm1'.
Estoy codificando mal alho?  :unsure:
A.L.

see07

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Limpiar Un Place Holder Dentro De Una Clase
« Respuesta #5 en: Martes 15 de Marzo de 2005, 16:40 »
0
Finalmente lo logré cambiando la llamada a la función así:

bool que =  WUC_CreDes.Class1.Lanza(this.Page as WUC_CreDes.WebForm1);

Saludos:

A.L. :whistling: