Behalten Sie die Bildlaufposition nach dem asynchronen Postback im Aktualisierungsfenster bei

9

Ich habe einige Probleme mit asp.net und Update-Panel. Das Problem ist, dass jedes Mal, wenn ein partielles Postback vom Update-Panel kommt, die Seite zurück nach oben gescrollt wird. Auf den meisten meiner Seiten ist das nicht so ein großes Problem, aber auf einigen Seiten kann es ziemlich lang werden. Wenn sich der Benutzer am Ende der Seite befindet, zeige ich das jQuery-Popup mit RadListView an, und der Benutzer kann das Element in dieser Liste auswählen. Wenn Sie jedoch auf dieses Element klicken, springt das Postback teilweise zurück und die Seite springt zurück nach oben.

Ich habe über das Internet gesucht und konnte keine Lösung für mein Problem finden. Natürlich macht MaintainScrollPositionOnPostback nichts.

Weiß jemand etwas, das mir helfen könnte, mit diesem Problem umzugehen?

Prost, Pako

    
Pako 05.07.2011, 13:34
quelle

2 Antworten

1

Es gibt eine kleine Problemumgehung dafür, die ich vor langer Zeit in einem ERP verwendet habe. Nicht sicher, ob es die beste Lösung ist, aber es funktioniert.

Ich weiß nicht, ob Sie eine benutzerdefinierte Page-Klasse oder die standardmäßige System.Web.UI.Page one verwenden, aber ich werde versuchen, Ihnen zu erklären, wie Sie es tun, und dann finden Sie heraus, wie Sie es am besten implementieren können in deiner Umgebung, in Ordnung?

Sie erstellen zum Beispiel ein HiddenField mit der ID "hfScrollPosition".

Dann machst du ein JavaScript-Ereignis: document.onscroll oder etwas Ähnliches, und innerhalb des Ereignisses aktualisierst du das versteckte Feld, um die aktuelle Bildlaufposition zu erhalten. Beispielsweise: document.getElementById("hfScrollPosition").value = document.documentElement.scrollTop;

Damit haben Sie ein ASP.NET-Steuerelement, das seinen Wert entsprechend der Position des Bildlaufs dynamisch aktualisiert. Wenn also ein Steuerelement auf Ihrer Seite ein Postback erstellt, können Sie den folgenden JavaScript-Code in Ihr Page_Load-Ereignis einfügen:

document.documentElement.scrollTop = document.getElementById("hfScrollPosition").value;

Jedes Mal, wenn Ihre Seite ein Postback erhält, wird die Bildlaufposition korrekt aktualisiert.

BEARBEITEN : Ich habe eine Fiedel gemacht, um es zu simulieren: Ссылка

    
Buzinas 13.07.2015 19:21
quelle
0

Verwenden Sie die ID eines Steuerelements im Repeater und verwenden Sie JQuery, um nach Abschluss des Postbacks zu scrollen.

Sie können die ID eines Steuerelements gemäß dem Format abrufen, das sie generieren.

    
srikanth 09.04.2015 18:41
quelle