Frage

Ich habe bei ähnlichen Fragen auf Stack Overflow gesucht, aber nicht in der Lage, die Lösung zu diesem Problem zu finden. Ich habe eine einfache (nicht wirklich, aber wir vorgeben) ASP.NET-Seite mit einem Update-Panel in seinem Inneren.

In diesem Update-Panel gibt es eine HiddenField Steuerung mit einem Wert, den JavaScript über meinen eigenen benutzerdefinierten gesetzt / aktualisiert werden. Der Wert ist aktualisiert, wie ich in dem DOM mit Firebug sehen kann.

Neben diesem HiddenField gibt es eine LinkButton, die die JavaScript ruft den Wert des HiddenField mit OnClientClick zu ändern (dies funktioniert). Die LinkButton hat auch einen OnClick Handler, der ausgeführt wird, nachdem der Wert geändert wurde.

Doch in dem OnClick Handler, erhalte ich den Anfangswert der HiddenField und nicht der Wert, der durch JavaScript! Gesetzt wurde

Warum ist das? Ist dies ein Fall von " PEBKAC "?

EDIT: Versuchte das Gleiche mit einem TextBox ohne Erfolg. Auch versucht, den Wert manuell mit Firebug Modifizieren vor dem Absenden des Formulars, ohne Erfolg.

EDIT 2: Ich habe erkannt, dass Page_Load vor dem OnClick Handler aufgerufen wird, die Dinge wurde durcheinander. Ich werde die Frage nicht löschen, wie andere Leute das gleiche Problem haben und können diese Frage wertvoll finden.

War es hilfreich?

Lösung

Du musst es tun EndRequestHandler Ereignis verwendet wird, zur Verfügung gestellt von dem AJAX-Update-Panel.

Bitte schauen Sie sich diese ->

http://www.codeproject.com/KB/ajax /AfterAjaxUpdate.aspx?display=Print

Andere Tipps

Das ist mir scheint, als ob der Ansichtszustand Sie einen schlechten Witz macht (wie oft). Was ich denke, ist, dass, wenn die Seite Beiträge zurück, wird das verborgene Feld mit dem Wert initialisiert im Viewstate enthalten ist.

eine Sache Versuchen: Schalten Sie den Wert nicht direkt durch yourHiddenField.Value zugreifen, sondern in der OnInit Ihrer Seite mit Request.Forms[yourHiddenField.UniqueId] bekommen und es zu einem Hidden werfen und den Wert extrahieren. Ich bin mir nicht sicher, ob dies die richtige Syntax. Die „geschrieben“ Werte sollten irgendwo im Request-Objekt sein, wenn ich mich recht erinnere. Prüfen Sie, ob Sie den Wert dort. Wenn Sie es dort zu erhalten, ist das Problem der Ansichtszustand, die wieder nach dem OnInit Ereignisse der Seite abgebildet wird. Dann müssen wir eine Lösung für das finden ...

Wie generieren Sie den neuen Eingang auf dem Client? Wäre es möglich, diese stattdessen auf dem Server auszuführen?

Auf diese Weise können die gerade die OnClick beide anstelle des OnClick und OnClientClick verwenden können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top