Laden...

OnServerClick & Postback

3 Antworten
1,213 Aufrufe
Letzter Beitrag: vor 14 Jahren
OnServerClick & Postback

Ich war sehr lange in der ASP MVC Welt unterwegs und bin jetzt leider gezwungen, ein Projekt im klassischen Stil umzusetzen. Hilfe! 😉

Dabei habe ich folgendes Problem:
ich habe ein Control, welches ich auf einer Seite mehrfach einbinde. Dieses Control enthält einen Link, der ein onserverclick-Event auslöst und nach außen verfügbar macht. Die umgebende Seite abonniert dieses Event und reagiert entsprechend (in diesem Fall ein Vote für das entsprechende Item/Control).
So wie ich es jetzt verstanden haben, lädt der Postback quasi die Seite neu und führt danach mein Event aus (vote). Problem ist dabei nur, dass ich damit folgenden Ablauf habe:
Seite baut sich auf > Ich klicke vote > Postback > Vote wird in der DB gespeichert > Seite neu angezeigt > Vote ist aber nicht zu sehen (steht aber in der DB)
Erst ein Refresh der Seite zeigt dann auch wirklich den Vote an.

Es kann doch jetzt nicht Sinn der Sache sein, dass ich Abfrage ob ich mich im Postback befinde und dann den Vote nur für die Anzeige noch mal erhöhe.
Wie geht man denn normalerweise mit solch einem Szenario um?

Hallo,

Es kann doch jetzt nicht Sinn der Sache sein, dass ich Abfrage ob ich mich im Postback befinde und dann den Vote nur für die Anzeige noch mal erhöhe.

Bei einem solchen Voting kann es ja auch sein, dass andere User/Clients zwischendurch den Wert erhöht haben. Einfach den Zähler zu erhöhen würde Dir dann nix bringen, Du willst ja sicherlich den aktuellen Wert anzeigen.
Das normale Vorgehen wäre den aktuellen Wert aus der DB neu zu laden und zu binden.
Wie fragst Du denn eigentlich die Daten aus der DB ab? Wenn Du z.B. eine SqlDataSource verwendest, und deren Daten bindest, sollte das automatisch passieren.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

Habe jetzt einfach die OnServerClicks durch Post-Requests ersetzt.
Projekt übernehme ich nur temporär, daher konnte ich keine größeren Änderungen Richtung DB angehen.
Danke.