spuštění metody jen jednou   zodpovězená otázka

ASP.NET WebForms

Nevíte jak spustit příkaz,pouze přitom,když aplikaci spouštím poprvé. Pokud jsem použil

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

ta to nefunguje.Když použiji

Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

tak to jde,ale pořád se to vykonává,po každé změně na stránce. To já nechci,jak na to?

Dík

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V .asp sice moc nedělám ale nepomohlo by si vytvořit proměnnou typo boolean nastavenou defaultně na true? Vždy by se testovalo zda je true nebo false. Pokud by byla true, spustila by se procedura a na konci by se nastavila na false. Takže při dalším načtení by byla false a procedura by se nespouštěla. Jen nevím jak to je u .asp s držením proměnných v paměti. To bude muset poradit někdo jiný.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To právě takhle nefunguje, stav stránky se nezachovává, takže proměnné zmizí. Cokoliv potřebujete zachovat pro další použití, musíte uložit do ViewState.

Tento problém se tady už jednou řešil: http://www.vbnet.cz/forum-tema--1422-eve...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem zjistil jak spustit metodu jen jednou a to při startu.Stačí použít příkazu:

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

Právě Handles Me.Init toto bez problémů řeší.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ne, to je totálně blbě, Init se spouští i při PostBacku a navíc ještě moc brzo. Nechápu, proč si nepřečtete diskusi, na kterou jsem hodil odkaz, stačí otestovat Me.IsPostBack, pokud je false, stránka se načítá poprvé.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback