Pflegen Sie die scroll-position nach dem asynchronen postback aus dem update-panel
Ich habe einige Probleme mit asp.net und update-panel. Das problem ist, dass jedes mal, wenn partielle postback-Auftritt von update-panel Seite gescrollt zurück nach oben. Auf den meisten meiner Seiten ist dies nicht so ein großes problem, aber auf manchen Seiten kann man ziemlich lange. Dann, wenn der Benutzer am unteren Rand der Seite, zeige ich jQuery popup mit RadListView
in es, und Benutzer können wählen Sie element in dieser Liste. Aber ein Klick auf dieses element verursacht eine partielle Postbacks und die Seite springt zurück an die Spitze.
Ist, habe ich mich durch internet und konnte keine Lösung für mein problem. Natürlich MaintainScrollPositionOnPostback
nichts.
Weiß jemand etwas, dass mir helfen könnte mit diesem problem umzugehen?
Cheers,
Paket
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einen kleinen workaround für das, dass ich verwendet habe, in einem ERP-vor langer Zeit. Nicht sicher, ob es die beste Lösung, aber es funktioniert.
Ich weiß nicht, ob Sie verwenden eine benutzerdefinierte Seite-Klasse oder der default -
System.Web.UI.Page
eins, aber ich werde versuchen, Ihnen zu erklären, wie Sie es tun, und dann finden Sie heraus, der beste Weg, die Sie implementieren können, in Ihrem Umfeld, ja?Erstellen Sie eine
HiddenField
zum Beispiel mit der ID "hfScrollPosition".Dann bekommst du ein javascript-event:
document.onscroll
oder so etwas, und innerhalb der Veranstaltung, die Sie werde zu aktualisieren, das versteckte Feld zu Holen Sie sich die aktuelle scroll-position. Zum Beispiel:document.getElementById("hfScrollPosition").value = document.documentElement.scrollTop;
Tun, müssen Sie eine ASP.NET Kontrolle der Aktualisierung der Wert dinamically, nach der body scroll-position. Also, wenn Sie eine gewisse Kontrolle in Ihrem Seite macht einen postback, können Sie den folgenden javascript-code in der Page_Load-Ereignis:
document.documentElement.scrollTop = document.getElementById("hfScrollPosition").value;
So, jedesmal, wenn Ihre Seite bekommt ein postback, der Körper die scroll-position wird korrekt aktualisiert.
BEARBEITEN: ich habe eine Geige zu simulieren:
https://jsfiddle.net/j26fpgzo/
Verwenden Sie die ID der Kontrolle in den repeater und Verwendung von JQuery scrollen nach postback wird abgeschlossen.
Können Sie die ID der Kontrolle als pro format Sie generieren.