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:
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.
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.
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.
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.
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…
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.