Se puede definir una variable global (public o protected) dentro de Page_Load?

23/12/2003 - 21:23 por Pablo.- | Informe spam
No sé de que tipo es la variable hasta que no consulto la variable session
en el page load, así que no la puedo definir donde se definen todas. Sin
embargo la variable tiene que ser de ámbito global y accesible desde todos
los procedimiento.

Es posible?.

Preguntas similare

Leer las respuestas

#1 urjose
23/12/2003 - 21:49 | Informe spam
Puedes definirla "donde se definen todas" ponle un tipo object.

Saludos

"Pablo.-" escribió en el mensaje
news:
No sé de que tipo es la variable hasta que no consulto la variable session
en el page load, así que no la puedo definir donde se definen todas. Sin
embargo la variable tiene que ser de ámbito global y accesible desde todos
los procedimiento.

Es posible?.


Respuesta Responder a este mensaje
#2 Pablo.-
24/12/2003 - 00:45 | Informe spam
Eso es lo que habia hecho, pero entonces no puedo llamar a los métodos
propios de la clase. Es decir, tengo dos clases: Cliente y Proveedor y solo
sé qué tipo de usuario ha iniciado sesión cuando en el page_load consulto
una variable de sesión.

Puedo definir en la cabecera de la pagina la varible usuarioActivo de tipo
Object, y luego asignarle el tipo cliente o proveedor, pero como te decía me
falla al llamar a los métodos propios de cada clase.

Puedo redefinir el tipo de una variable desde una procedimiento como el
page_load? supongo que no

He intentado convertir la variable de Object a Cliente con un cast:

protected Object usuarioActivo
page_load()
{


if(Session["tipo_usuario]=="cliente")
usuarioActivo=(Cliente) Session["cliente"]
else
usuarioActivo=(Proveedor) Session["proveedor"]

}

public void nada()
{
if(Session["tipo_usuario]=="cliente")
label.text=usuarioActivo.id_cliente;
else
label.text=usuarioActivo.id_proveedor;

}


Como verás el problema radica en que las propiedades no se llaman igual...


¿alguna idea?









"urjose" escribió en el mensaje
news:eqZm#
Puedes definirla "donde se definen todas" ponle un tipo object.

Saludos

"Pablo.-" escribió en el mensaje
news:
> No sé de que tipo es la variable hasta que no consulto la variable


session
> en el page load, así que no la puedo definir donde se definen todas. Sin
> embargo la variable tiene que ser de ámbito global y accesible desde


todos
> los procedimiento.
>
> Es posible?.
>
>


Respuesta Responder a este mensaje
#3 Pablo.-
24/12/2003 - 01:01 | Informe spam
Resuelto...parece mentira pero era cosa de paréntesis...
esto no va...
if(Session["tipo_usuario]=="cliente")
label.text=(Cliente) usuarioActivo.id_cliente;
else
label.text=(Proveedor) usuarioActivo.id_proveedor;



esto si...
if(Session["tipo_usuario]=="cliente")
label.text=((Cliente) usuarioActivo).id_cliente;
else
label.text=((Proveedor) usuarioActivo).id_proveedor;




¿algún comentario al respecto?


"Pablo.-" escribió en el mensaje
news:
Eso es lo que habia hecho, pero entonces no puedo llamar a los métodos
propios de la clase. Es decir, tengo dos clases: Cliente y Proveedor y


solo
sé qué tipo de usuario ha iniciado sesión cuando en el page_load consulto
una variable de sesión.

Puedo definir en la cabecera de la pagina la varible usuarioActivo de


tipo
Object, y luego asignarle el tipo cliente o proveedor, pero como te decía


me
falla al llamar a los métodos propios de cada clase.

Puedo redefinir el tipo de una variable desde una procedimiento como el
page_load? supongo que no

He intentado convertir la variable de Object a Cliente con un cast:

protected Object usuarioActivo
page_load()
{


if(Session["tipo_usuario]=="cliente")
usuarioActivo=(Cliente) Session["cliente"]
else
usuarioActivo=(Proveedor) Session["proveedor"]

}

public void nada()
{
if(Session["tipo_usuario]=="cliente")
label.text=usuarioActivo.id_cliente;
else
label.text=usuarioActivo.id_proveedor;

}


Como verás el problema radica en que las propiedades no se llaman igual...


¿alguna idea?









"urjose" escribió en el mensaje
news:eqZm#
> Puedes definirla "donde se definen todas" ponle un tipo object.
>
> Saludos
>
> "Pablo.-" escribió en el mensaje
> news:
> > No sé de que tipo es la variable hasta que no consulto la variable
session
> > en el page load, así que no la puedo definir donde se definen todas.


Sin
> > embargo la variable tiene que ser de ámbito global y accesible desde
todos
> > los procedimiento.
> >
> > Es posible?.
> >
> >
>
>


Respuesta Responder a este mensaje
#4 urjose
24/12/2003 - 17:18 | Informe spam
Creo que llegue algo tarde.

Lo que haces aquí es:

label.text=(Cliente) usuarioActivo.id_cliente;

Tratas de hacer cast a usuarioActivo.id_cliente lo cual no es correcto pues
aun no sabes que tipo de objeto es como para llamar su field o property

Cuando en realidad quieres hacer cast a

label.text=((Cliente) usuarioActivo).id_cliente;

O sea, primerto haces el cast al objeto que deseas y ya que lo convertiste y
que tienes el objeto que deseas entonces si ya llamas a su propiedad

Bueno supongo que ya lo sabias =P


"Pablo.-" escribió en el mensaje
news:#
Resuelto...parece mentira pero era cosa de paréntesis...
esto no va...
> if(Session["tipo_usuario]=="cliente")
> label.text=(Cliente) usuarioActivo.id_cliente;
> else
> label.text=(Proveedor) usuarioActivo.id_proveedor;

esto si...
> if(Session["tipo_usuario]=="cliente")
> label.text=((Cliente) usuarioActivo).id_cliente;
> else
> label.text=((Proveedor) usuarioActivo).id_proveedor;


¿algún comentario al respecto?


"Pablo.-" escribió en el mensaje
news:
> Eso es lo que habia hecho, pero entonces no puedo llamar a los métodos
> propios de la clase. Es decir, tengo dos clases: Cliente y Proveedor y
solo
> sé qué tipo de usuario ha iniciado sesión cuando en el page_load


consulto
> una variable de sesión.
>
> Puedo definir en la cabecera de la pagina la varible usuarioActivo de
tipo
> Object, y luego asignarle el tipo cliente o proveedor, pero como te


decía
me
> falla al llamar a los métodos propios de cada clase.
>
> Puedo redefinir el tipo de una variable desde una procedimiento como el
> page_load? supongo que no
>
> He intentado convertir la variable de Object a Cliente con un cast:
>
> protected Object usuarioActivo
> page_load()
> {
>
>
> if(Session["tipo_usuario]=="cliente")
> usuarioActivo=(Cliente) Session["cliente"]
> else
> usuarioActivo=(Proveedor) Session["proveedor"]
>
> }
>
> public void nada()
> {
> if(Session["tipo_usuario]=="cliente")
> label.text=usuarioActivo.id_cliente;
> else
> label.text=usuarioActivo.id_proveedor;
>
> }
>
>
> Como verás el problema radica en que las propiedades no se llaman


igual...
>
>
> ¿alguna idea?
>
>
>
>
>
>
>
>
>
> "urjose" escribió en el mensaje
> news:eqZm#
> > Puedes definirla "donde se definen todas" ponle un tipo object.
> >
> > Saludos
> >
> > "Pablo.-" escribió en el mensaje
> > news:
> > > No sé de que tipo es la variable hasta que no consulto la variable
> session
> > > en el page load, así que no la puedo definir donde se definen todas.
Sin
> > > embargo la variable tiene que ser de ámbito global y accesible desde
> todos
> > > los procedimiento.
> > >
> > > Es posible?.
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Abelardo Barberena Gil
26/12/2003 - 16:03 | Informe spam
No amigo, no se puede declarar la variable, ya que cada que se ejecuta algún
evento, se "RESETEA" el valor de tu varible GLOBAL, pero lo que YO te
recomiendo es crear un valor variable desde tu WEB.CONFIG, usando el XML de
este archivo.

Te puedo ayudar en eso, pero dime si es lo que quieres, me parece que es con

<appSettings>
<key = "Variable" value= "TUS_DATOS" />
</appSettings>

luego se importa el System.ConfigurationSettings, etc etc, pero como te
digo, solo si quieres que te ayude, ok.

Saludos

Abelardo Barberena Gil
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida