Toon posts:

[asp.net]Session variabele behouden na click event

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor een button heb ik een event geschreven die een formulierveld uitleest.
Standaard wordt de pagina opnieuw geladen na een click-event en verdwijnt de waarde uit het formulierveld.

Om dit op te lossen wil ik de waarde in de eventhandler in een session variabele laten opslaan, en weer uit laten lezen bij het laden van de pagina.
Het probleem is, dat er geen waarde in de session variabele blijkt te zitten bij het laden van de pagina.
In de button click eventhandler wordt de waarde wel correct in de session opgeslagen.

Nu heb ik op een ander forum dezelfde vraag gevonden met een oplossing erbij, maar hier kwam ik niet verder mee.
Het probleem wordt veroorzaakt door de volgorde waarin de methodes worden afgehandeld. De page_load event gebeurd eerder dan de click eventhandler waardoor de waarde dus te laat wordt opgeslagen.
De vraagsteller had het opgelost met de prerender methode, maar hij heeft er verder geen voorbeeldcode bij gezet.
Ik heb zelf geen ervaring met de prerender methode en op internet kon ik er ook geen duidelijke voorbeelden van vinden.
Misschien dat iemand mij hier verder mee kan helpen?

Verwijderd

Zet EnableViewstate aan voor alle elementen op je formulier waar je van wilt dat de waarde weer getoond wordt nadat het formulier gesubmit is. Dus niet nodig om met sessie variabelen te werken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Normaal gezien staat die EnableViewState toch default aan?

https://fgheysels.github.io/


Verwijderd

whoami schreef op 16 December 2002 @ 15:53:
Normaal gezien staat die EnableViewState toch default aan?
Ach als iedereen alles op default zou laten staan, dan hebben we dadelijk niks meer om op te antwoorden... 8)

Verwijderd

Topicstarter
Enable viewstate heb ik al geprobeerd, maar dit is niet de oplossing. De oplossing is denk ik echt het gebruik van de prerender methode, maar hoe?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Raar. Normaal gezien moet die enableviewstate property soelaas brengen.

Wat staat er in je page_load ?

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:14

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 17 December 2002 @ 08:38:
Raar. Normaal gezien moet die enableviewstate property soelaas brengen.

Wat staat er in je page_load ?
[gokmodus]
Volgens mij is ook de vraag wat er niet in staat...
Best kans dat er een If Not Page.IsPostback Then .. end if mist...
[/gokmodus]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
gorgi_19 schreef op 17 december 2002 @ 08:49:
[...]

[gokmodus]
Volgens mij is ook de vraag wat er niet in staat...
Best kans dat er een If Not Page.IsPostback Then .. end if mist...
[/gokmodus]


Dat denk ik ook.... Vandaar m'n vraag.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ik had inderdaad geen If Not Page.IsPostback Then.... in mijn code. Ik heb het geprobeerd, maar de tekst verdwijnt toch na het klikken op de save-button.
Ik wil het dus met die prerender methode proberen, maar ik begrijp niet zo goed wat ik daarmee kan. Ik zou daar graag wat meer uitleg of voorbeeldcodes van willen zien.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-08 07:51

mulder

ik spuug op het trottoir

Door een click verdwijnt zo'n text niet, maar door een DataBind. De Bind van de Page moet in het Not PostBack stukkie.

(Gokje)

oogjes open, snaveltjes dicht


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:14

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 17 December 2002 @ 11:06:
Ik had inderdaad geen If Not Page.IsPostback Then.... in mijn code. Ik heb het geprobeerd, maar de tekst verdwijnt toch na het klikken op de save-button.
Ik wil het dus met die prerender methode proberen, maar ik begrijp niet zo goed wat ik daarmee kan. Ik zou daar graag wat meer uitleg of voorbeeldcodes van willen zien.
Zou je misschien je (een beetje relevante code hier kunnen neerzetten? Het is en blijft, in ieder geval voor mij, nogal abstract zo....

[ Voor 3% gewijzigd door gorgi_19 op 17-12-2002 11:16 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ok, ik zal proberen mijn applicatie wat duidelijker te maken:
Het zit nogal ingewikkeld in elkaar, dus ik kan het niet zo kopiëren.
Ik zal uitleggen wat de werking ervan is.
Het is een online html editor waarin tekst bewerkt kan worden.
Door op een link te klikken wordt er tekst in geplaatst die vervolgens bewerkt kan worden.
De te bewerken tekst wordt in een iframe geplaatst (dat is voor deze toepassing het handigste).
Omdat een iframe geen server control is, wordt de viewstate hiervan niet behouden.
Door op de save-button te klikken, wordt er eerst een javascript functie uitgevoerd die de inhoud van het iframe uitleest en wegschrijft naar een hidden field.
Dit hidden field wordt door de button eventhandler uitgelezen en opgeslagen in een session.
Tot zover gaat het goed.
Maar als ik de tekst in de session in de pageload weer wil opvragen, dan blijkt er niets in de session te zitten.
Sluit ik nu de editor af en klik weer op de edit link, dan blijkt de session pas gevuld te zijn.
De verklaring hiervoor is de volgorde waarin gebeurtenissen afgehandeld worden.
Eerst wordt de page_load afgehandeld en dan wordt de button eventhandler pas uitgevoerd. De session wordt dus te laat gevuld.
Op dit forum vond ik precies hetzelfde probleem:
http://www.wintellect.com/forum/topic.asp?TOPIC_ID=1139

Verwijderd

Topicstarter
Het probleem is opgelost. Als ik de waarde van de session in de page_init event toewijs ipv van in de button eventhandler, blijft de waarde wel staan in de page_load.
In ieder geval bedankt voor jullie antwoorden!
Pagina: 1