Op een bepaalde pagina wordt bij elke OnInit() een timer ingesteld met als interval de waarde van Session.Timeout:
(staat nu om te testen op 10 seconden).
In de OnTimedEvent dient er code te komen die een venster opent waar de gebruiker wordt gevraagd of de gegevens opgeslagen moeten worden. Hiervoor heb ik een nieuwe Form gemaakt, aangezien hier ook weer een timer aan gekoppeld moet worden (na x seconden moet dat venster ook gesloten worden en teruggekeerd worden naar het inlogscherm).
Het probleem is nu eigenlijk: hoe open ik een nieuw venster? In Javascript is dat niet moeilijk, de methode ziet er nu zo uit:
Echter, doordat er geen PostBack plaatsvindt wordt de javascript niet uitgevoerd. Ik heb hier al een beetje rondgezocht en met hidden buttons zou ik dit wel kunnen doen. Echter, erg netjes is het niet.
Dus het probleem is nu hoe ik dat window open nadat de timer afloopt. Kan dit alleen maar met jscript? Ik heb hier al een keer eerder naar gezocht om serverside windows te openen, maar dat wil natuurlijk niet. Dus ik denk toch dat ik een postback moet triggeren op de een of andere manier, maar dat wil ik liever niet aangezien het niet echt netjes is. Iemand een betere oplossing?
code:
1
2
3
| Timer timer = new Timer(10000);//(Session.Timeout*60*1000); timer.Elapsed+=new ElapsedEventHandler(OnTimedEvent); timer.Enabled=true; |
(staat nu om te testen op 10 seconden).
In de OnTimedEvent dient er code te komen die een venster opent waar de gebruiker wordt gevraagd of de gegevens opgeslagen moeten worden. Hiervoor heb ik een nieuwe Form gemaakt, aangezien hier ook weer een timer aan gekoppeld moet worden (na x seconden moet dat venster ook gesloten worden en teruggekeerd worden naar het inlogscherm).
Het probleem is nu eigenlijk: hoe open ik een nieuw venster? In Javascript is dat niet moeilijk, de methode ziet er nu zo uit:
code:
1
2
3
4
5
6
7
8
9
10
| String scriptString = "<script language=JavaScript>\n";
scriptString += "var WinSettings = \"center:yes;resizable:no;dialogHeight:300px\";\n";
scriptString += "var MyArg = window.showModalDialog(\"ModalForm.aspx\", MyArg, WinSettings);\n";
scriptString += "if MyArg == null {\n";
scriptString += " \n";
scriptString += "} else {\n";
scriptString += " \n";
scriptString += "</script>\n";
if(!this.IsStartupScriptRegistered("ShowDialog"))
Page.RegisterStartupScript("ShowDialog", scriptString); |
Echter, doordat er geen PostBack plaatsvindt wordt de javascript niet uitgevoerd. Ik heb hier al een beetje rondgezocht en met hidden buttons zou ik dit wel kunnen doen. Echter, erg netjes is het niet.
Dus het probleem is nu hoe ik dat window open nadat de timer afloopt. Kan dit alleen maar met jscript? Ik heb hier al een keer eerder naar gezocht om serverside windows te openen, maar dat wil natuurlijk niet. Dus ik denk toch dat ik een postback moet triggeren op de een of andere manier, maar dat wil ik liever niet aangezien het niet echt netjes is. Iemand een betere oplossing?