Ich habe ein paar Textfelder/Etiketten in einem UpdatePanel. Wenn ich aus einem der Textfelder herausfahre, muss ein Label mit etwas Text aktualisiert werden. Dies führt dazu, dass die Seite auf das oberste Element zurückgesetzt wird.ASP.NET Focus Scrolls Seite zu Eingabe
Dies ist ein Dateneingabeformular und die Benutzer erwarten, dass sie die Maus überhaupt nicht benutzen müssen. Ich kann den Schwerpunkt auf der richtigen Textbox in Code zurück:
Page.SetFocus(tbxInput);
oder
tbxInput.Focus();
In IE, wird die Browser Scrollposition gehalten (woo hoo!). In Chrome und Firefox ist es nicht; Der Bildlaufort wird so angepasst, dass das fokussierte Textfeld das letzte auf der Seite angezeigte Element ist. Das ist wirklich beunruhigend für den Benutzer.
Ich verwende die folgenden Regeln in meinem web.config:
<pages theme="Default" styleSheetTheme="Default" maintainScrollPositionOnPostBack="true" validateRequest="false">
Wie kann ich das Verhalten erreichen, die IE hat?
Gibt es eine Möglichkeit, diese Situation zu umgehen, indem der Fokus beim Zurücksetzen des Texts des Etiketts beibehalten wird? Es scheint übertrieben, das zu tun: [ – Harper
@Harper hast du jemals eine Antwort auf deinen Kommentar gefunden? –
@Tristan Descartes, meine Lösung (Aktualisieren der Beschriftung in Javascript) vermeiden Sie, den Fokus zu verlieren. Das Problem, zu dem das OP läuft, ist, dass sein UpdatePanel ein Postback macht und durch den Code aktualisiert wird. Jedoch ist meine Lösung reines Javascript, verursacht kein Postback und lässt den Fokus völlig unberührt. Sie können sogar AJAX in Ihrem Javascript verwenden, wenn Sie einige Werte vom Server erhalten möchten. – tster