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

Limpiar un Place Holder dentro de una clase

Estas en el tema de Limpiar un Place Holder dentro de una clase en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/03/2005, 11:25
Avatar de see07  
Fecha de Ingreso: abril-2004
Ubicación: México, D.F.
Mensajes: 112
Antigüedad: 20 años
Puntos: 0
Limpiar un Place Holder dentro de una clase

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.

A.L.
__________________
El hombre que tiene amigos ha de mostrarse amigo....
  #2 (permalink)  
Antiguo 10/03/2005, 17:28
Rodolfo Israel
Invitado
 
Mensajes: n/a
Puntos:
Hola amigo, para empezar el primer problema que tienes es que no puedes utilizar this desde un funcion static de tu clase Class1 dado que las funciones static no requieren que un objeto de esa clase sea instanciado para poder llamarlas, por otra parte, creo que no tienes claro aun el uso correcto del 'this'
que es como un apuntador a una instancia de tu clase, en codigo que tienes aqui creo que intentas acceder al objeto page de tu WebForm utilizando el this mientras que lo que deberias hacer es pasar el objeto page como parametro por referencia a tu clase mas o menos de la siguiente manera:



Código:
 
namespace WUC_CreDes
 {
   public class Class1 
  {
	 public static bool Hay_PostBack(System.Web.UI.Page Parent1)
	 { 
		Parent1.Example.Controls.Clear();
		return false;	
	 }
  }
 }

'Entonces podrias llamar a esta funcion desde algun evento de tu WebForm de la siguiente manera

... Evento OnClick de algun boton de tu pagina por ejemplo
	WUC_CreDes.Class1.Hay_PostBack(this.page)
...

Te aconsejo que leas un poco sobre el uso del this en las clases, creo que no soy el mejor para explicartelo, sin embargo espero que lo poco que te expongo aqui te sirva de ayuda.
  #3 (permalink)  
Antiguo 11/03/2005, 15:36
Avatar de see07  
Fecha de Ingreso: abril-2004
Ubicación: México, D.F.
Mensajes: 112
Antigüedad: 20 años
Puntos: 0
Gracias Rodolfo-Israel:
Finalmente sustituí:
public static bool Hay_PostBack(System.Web.UI.Page Parent1)
por:
public static bool Hay_PostBack(WUC_CreDes.WebForm1 parent1)

Mas ahora me surge otra duda:
Si desde un WUC deseo llamar la misma función:
bool que = WUC_CreDes.Class1.Lanza(this);
entiendo que no debo usar 'this', sino sustituirla por WebForm1.ascx ???

Alguien sabe como podría lograr esto?
__________________
El hombre que tiene amigos ha de mostrarse amigo....
  #4 (permalink)  
Antiguo 14/03/2005, 09:40
Avatar de see07  
Fecha de Ingreso: abril-2004
Ubicación: México, D.F.
Mensajes: 112
Antigüedad: 20 años
Puntos: 0
Alguien con alguna sugerencia para solucionar esto?
Esto debido a que si utilizo: bool que = WUC_CreDes.Class1.Lanza(this.Page) me provoca el error: Argumento '1' no se puede convertir de 'System.Web.UI.Page' a 'WUC_CreDes.WebForm1'
__________________
El hombre que tiene amigos ha de mostrarse amigo....
  #5 (permalink)  
Antiguo 14/03/2005, 10:11
Rodolfo Israel
Invitado
 
Mensajes: n/a
Puntos:
Amigo, creo que tu problema esta demasiado claro:

no se puede convertir de 'System.Web.UI.Page' a 'WUC_CreDes.WebForm1'

en todo caso llama a esta funcion asi:
WUC_CreDes.Class1.Lanza(this)
si tu funcion lanza esta declarada de esta manera:
public static bool lanza(WUC_CreDes.WebForm1 parent1)

o bien asi:
WUC_CreDes.Class1.Lanza(this.page)
si tu funcion se declara asi:
public static bool Lanza(System.Web.UI.Page Parent1)
  #6 (permalink)  
Antiguo 15/03/2005, 09:38
Avatar de see07  
Fecha de Ingreso: abril-2004
Ubicación: México, D.F.
Mensajes: 112
Antigüedad: 20 años
Puntos: 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.
__________________
El hombre que tiene amigos ha de mostrarse amigo....
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




La zona horaria es GMT -6. Ahora son las 19:41.