Problem mit RegisterStartupScript

dila71

Mitglied
Hallo,
ich habe einen Seitenaufbau wie folgt.
Ich habe aspx-Dateien Templates , welche von einer eigenen Klasse Tepmlate ableiten. diese ist eine Ableitung von Page.
Diese aspx haben Platzhalter in welche wiederum ascx-Dateien geladen werden.
Die ascx haben jeweils einen "Defaultbutton", desssen aktion ausgeführt wird, wenn ich Enter drücke.
Damit bei 3 verschiedenen ascx auch der richtige Defaulbutton verwendet wird, hat das Template ein Hiddenfield, in welches per Javascript die ID des letzten benutzten Elementes eingetragen wird.
Code:
function registerFocus( elementid ) { 
		document.forms[ 'Form1' ].elements[ 'focus' ].value = elementid; 
	}
Wird dann enter gedrückt, wird geschaut, ob das "__EVENTTARGET" leer ist (wahrscheinlich der Fehler denn das ist immer leer) und im Hiddenfield was drin steht, wenn ja wird im Form das Element gesucht dessen ascx identifiziert und dessen Defaultbutton abgearbeitet. So weit so gut, das funktioniert prima.

Nun mein Problem. Wenn ich den Backbutton des Browsers verwende, steht im Hiddenfield immer noch das letzte Focuselement drin. Klicke ich jetzt irgendeinen Button, wird wieder so getan, als ob der Defaultbutton abgearbeitet werden soll. nun habe ich in mein oberstes Temlate in die Methode welche die Platzhalter läd ein weiteres JS mit RegisterStartupScript registriert. dieses löscht beim Laden der Seite das Hiddenfield.
Code:
function deregisterFocus() { 
		document.forms[ 'Form1' ].elements[ 'focus' ].value = ''; 
	}
Das Problem ist das folgende:
Firefox, Feld ausfüllen, Enter, funktioniert, Back-Button des Browsers, einen anderen Button drücken, beim Server kommt 'focus' leer an, der geklickte Button wird abgearbeitet.
IE, Feld ausfüllen, Enter, funktioniert, Back-Button des Browsers, einen anderen Button drücken, beim Server kommt 'focus' immer noch mit dem alten Inhalt an, der geklickte Button wird ignoriert, der Defaultbutton wird abgearbeitet.

Nun die Frage. Wie kann ich zwischen Enter und Buttonklick Serverseitig unterscheiden oder im IE dieses Hiddenfield leeren?



Danke
Dirk
 

Neue Beiträge

Zurück