DotNetBlog der DotNet-Blog Alles rund um Microsoft .NET – von  Sascha H. Baumann

ASP.NET – JavaScript für Serverseitige Events nutzen mittels doPostBack

1 Star2 Stars3 Stars4 Stars5 Stars (Noch nicht bewertet. Seien Sie der/die Erste !)
Loading ... Loading ...

Hallo zusammen,

ich hatte kürzlich das Problem, über JavaScript einen serverseitigen Event anzusprechen. Genauer gesagt handelte es sich um
ein JavaScript SetTimout, das nach Ablauf der Zeit Daten in die Datenbank schreiben sollte. Hier mein Lösungsansatz dafür,
sicher nicht der einzig Mögliche, aber ein wie ich finde recht simpler und leicht verständlicher.

Wir beginnen mit einer Testapplikation, die nicht viel mehr als einen Scriptmanager, einen Button, ein Label und Updatepanel hat.
In letzterem befindet sich wiederum ein Label, in dem die aktuelle Serverzeit angezeigt werden soll – fortlaufend.

Der Code-Behind für den Button sieht dann so aus:

protected void Button1_Click(object sender, EventArgs e)
{
Label2.Text = "Aktuelle Zeit:" + System.DateTime.Now;
}

in der ASPX-Seite wird nun der Button als Trigger für das Update-Panel definiert, selbiges wird auf UpdateMode Coditional gesetzt, und ein kleines SetInterval Javascript geschrieben. Man beachte in dem Script den Aufruf der Framework-Funktion __doPostBack, die den Button als EventTarget enthält.


ASPX Code

Auf das Bild klicken zum Vergrößern

Und schon funktioniert das ganze wie es soll. Nun kann man den Button noch per Style auf Display:none setzen, dann stört er auch nicht mehr. Visible=false sollte man bleiben lassen, da sonst auch das DoPostBack den Button nicht mehr findet. Anstelle eines SetInterval kann man nun jeden beliebigen Code setzen, zum Beispiel ein SetTimeout um den Aufruf nur ein einziges mal nach Ablauf einer bestimmten Zeit durchzuführen.

Ich hoffe es hilft euch, und bin gespannt auf Anmerkungen.
Hier ist der Sourcecode der Beispielwebseite zu finden

Euer Sascha Baumann

Share and Enjoy:
  • Digg
  • del.icio.us
  • Mixx
  • Google Bookmarks
  • MisterWong.DE
  • Technorati
  • Webnews.de
  • YahooMyWeb

2 Antworten zu “ASP.NET – JavaScript für Serverseitige Events nutzen mittels doPostBack”

  1. Jürgen Gutsch Sagt:

    Hallo Sascha,
    das sollte IMHO auch ohne Trigger gehen, wenn sich der Button innerhalb des UpdatePanels befindet. Dann spart man sich den Trigger. :-)

  2. admin Sagt:

    Hallo Jürgen,
    Stimmt, wenn der Button innerhalb des Updatepanels ist muss man Ihn nicht extra als Trigger definieren. Wäre zu überlegen, ob es dann eventuell zu Problemen durch die Ladezeit des Panels kommen kann, wenn der Server sehr langsam ist … Hab ich aber gerade auch keine Antwort drauf :-)
    Vielleicht mach ich ja nochmal ein HowTo zum Umgang mit Updatepanels.
    Ciao
    Sascha

Hinterlasse eine Antwort

CAPTCHA-Bild CAPTCHA Audio
Bild neuladen

Bad Behavior has blocked 132 access attempts in the last 7 days.