2009-12-16 10 views

Antwort

11

Sie könnten das eine Javascript-Register, das Buch zu der Position einer gewissen Kontrolle zu bewegen, die Sie wollen, wie folgt aus:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (IsPostBack) 
     { 
      RegisterStartupScript("ScrollScript", "document.getElementById('objectId').scrollIntoView(true);"); 
     } 
    } 

die objectId im Skript ändern für die ID des Objekts, das Sie bewegen wollen zu.

Wie von Guy Starbuk in den Kommentaren erwähnt, wird RegisterStartupScript in .Net veraltet 4 und jetzt die empfohlene Art und Weise, ein Skript zu registrieren ist:

ClientScript.RegisterStartupScript(GetType(), "ScrollScript", "document.getElementById('objectId').scrollIntoVie‌​w(true)", true); 
+3

Dies ist eine große Antwort ist und war für mich - etwas ist zu beachten, dass Registerstartup 4 in .NET ist veraltet, habe ich folgendes: ClientScript.RegisterStartupScript (GetType(), "ScrollScript", " document.getElementById ('ContentPlaceHolder1_postSaveMessageDiv'). scrollIntoView (true) ", true); –

0

auf der Seite einen Anker erstellen, dann auf onload:

window.location.href = "#myanchor" 
13

von Hosam Kamel's page

Um die Bildlaufposition für die große Web-Seite zu halten Sie auf diesen Methoden verwenden:

1- Verwendung Web.config Seite Abschnitt <pages maintainScrollPositionOnPostBack="true" />

: Dies wird die Scroll-Positionen für alle Web-Site-Seiten unterhält.

2- in der Seitendeklaration <%@ Page MaintainScrollPositionOnPostback="true" %>: Dies wird nur die Bildlaufposition für diese Seite beibehalten.

3- programmatisch aus Code hinter System.Web.UI.Page.MaintainScrollPositionOnPostBack = true;: Dies wird die Bildlaufposition nur für diese Seite beibehalten (die gleiche wie bei der Seitenerstellung).

+0

Wie benutze ich es hinzufügen <% @ Seite MaintainScrollPositionOnPostback = "True"%> aber nicht nach unten arbeiten? –

+0

diese aktuelle Scroll-Position? –

+0

Entschuldigung, ich habe das Problem falsch verstanden. Ich hatte eine ähnliche Situation, in der der Benutzer zum unteren Rand der Seite scrollen würde, einen Pfosten zurück tun und würde die Rolleposition verlieren. Jetzt verstehe ich, dass der Benutzer direkt zum Ende der Seite nach Postback gehen sollte – ram

0

Eine Sache fehlt in den Antworten hier ist eine Verzögerung. Es ist alles gut und gut, wenn sich die Höhe der Webseite während des Ladens nicht ändert. Aber wenn es viele Bilder gibt und Sie versuchen, an ihnen vorbei zu scrollen; Sie können Ihren Blick wieder aufblähen.

Was benötigt wird, ist ein window.onload Funktionsaufruf:

ClientScript.RegisterStartupScript(GetType(), "ScrollScript", "window.onload = function() {document.getElementById('objectid').scrollIntoView(true);}", true); 
0

In asp.net Web-Seiten Sie ein OnClientClick Ereignis zum Steuerelement hinzufügen können, dass der Server senden Sie zurück nach unten scrollen.

<asp:Button ID="MyButton" runat="server" Text="Submit" OnClick="MyButton_Click" OnClientClick="window.scrollTo(0, document.body.scrollHeight);" /> 
Verwandte Themen