Actualizar valor de WebLabel en Web 2.0

Buenos días,

tengo una weblabel en una webpage que muestra el nombre de usuario de la sesión activa (para ello he creado la propiedad Session.Username). A continuación he creado un webdialog desde donde se puede cambiar el nombre de usuario y al darle a ‘Aceptar’ he comprobado que la propiedad ‘Session.Username’ se ha actualizado con el nuevo nombre.

He creado un método en la página web que modifica el valor de la weblabel:

WelcomeLabel.Text = "Bienvenido, " + Session.UserName

Y lo invoco antes de cerrar el webdialog, pero no consigo que se muestre el valor actualizado de la weblabel.

¿Hay alguna manera de actualizar la weblabel o la webpage para que coja los cambios?.

Muchas gracias,
Sergio

Estas invocandolo ANTES de que el webdialog actualice la variable Session.UserName?

Hola @Ivan_Tellez,

no, lo invoco justo antes de cerrar el webdialog después de que se actualicen. He comprobado en el modo de depuración que tanto la variable Session.Username como el valor de la weblabel tiene ya el nuevo valor pero no entiendo por qué no se muestra. Es como si le faltase el “Refresh” o “invalidate” que tiene la versión Desktop.

No doy con ello :thinking:

Sergio

Sergio, si pudieras compartir un ejemplo simplificado sería útil para que otros te puedan ayudar, con la información que expones es difícil recomendar algo.

Saludos

Puede ser que no he entendido tu pregunta pero esto llamado desde un webdialog me funciona bién. Esto desde un webDialog:

Session.userName  = TextField1.Text
WebPage1.updateLabel // Metodo que actualiza el .text 
Self.Close

Sí, creo que es mejor poner un ejemplo. Perdonad por la espera que he tenido que revisar bien que reproduzca mi problema.

Enlace ejemplo: Ejemplo_Actualizar_WebLabel

A ver si ahora es más fácil que me entendais.

Gracias chicos.
Sergio

Sergio, tienes un método en Session que tiene este código:

Var Main As New MainPage
Main.Show

esto hace que cuando pides

MainPage.ActualizarUsuario

no se actualice tu página ya que ésta en realidad es una diferente creada en la propiedad Main. MainPage si se actualiza pero no es la que estás mostrando, la que estás mostrando es una nueva creada en Main.

Muchas gracias Alberto,

no había caído y mira que lo he mirado veces, gracias por revisarlo detenidamente. Creo que toda la confusión viene de un error (o duda de base) que tengo como novato (sobre todo en Web) y aprovecho para preguntártelo a ti. Mi ejemplo se basa en el ejemplo “LoginExample” que viene con Xojo 2020r2.1. En dicho ejemplo utilizan la estrategia de a través de “Session” ir creando nuevas instancias de cada una de las webpage que se crean. La verdad que cuando lo estuve estudiando recuerdo que me surgió la misma duda que te formulo ahora:
¿Es necesario crear una nueva instancia de cada una de las webpage que se creen?. La verdad que no hay mucha ayuda o ejemplos sobre este tema e igual pregunto una tontería pero si no es así, ¿cómo sueles hacer tú para resolver el problema que tengo ahora?. Me figuro que se me dará más veces por eso a ver si puedes orientarme.

He probado a quitar la nueva instancia (‘Main’) y solo indicar

MainPage.Show

y entonces todo funciona correctamente pero quiero aprender la forma correcta (que no tiene que ser la más sencilla).

Espero que me puedas ilustrar porque seguramente ayudes a otros como yo.

Gracias de antemano.
Sergio

Hola de nuevo,

le he estado dando vueltas y creo que lo he resuelto Alberto. Si no te importa, ¿puedes echarle un vistazo al mismo ejemplo (mismo enlace) para ver si es correcta la solución?.

De paso si que me gustaría que me contestaras a la pregunta de mi mensaje anterior para seguir aprendiendo…

Gracias Maestro :wink:

Como también funciona es definiendo una propiedad Main en Session del tipo MainPage, ahí asignas una nueva MainPage y en lugar de llamar MainPage.ActualizarUsuario puedes hacerlo con Session.Main.ActualizarUsuario de esta forma sabes en dónde tienes asignada la página y la forma de hacer referencia a ella.

Edito: muy lejos de ser maestro pero me gusta ayudar en lo que pueda. Espero que si te estoy dando mala información algún compañero nos ayude.

Gracias Alberto,

tomo nota de tu sugerencia y hago los cambios ahora mismo. Me parece buena idea utilizar la propiedad Main y así conocer la referencia.

Muchas gracias por todo y por la molestias en revisar el código. :wink:

Feliz Año Nuevo!!
Sergio

2 Likes