How to scroll to bottom of page when postback finish in asp.net?
I have many details in page when I click "Show Detail" in master detail, this page show many data in my page. So how to to scr开发者_如何学Coll to bottom of page automatically?
from Hosam Kamel's page
To maintain the scroll position for the large web page you can use on of these methods :
1- use Web.config page section <pages maintainScrollPositionOnPostBack="true" />
: this will maintains the scroll positions for all the web site pages.
2- in the page declaration <%@ Page MaintainScrollPositionOnPostback="true" %>
: this will maintains the scroll position for this page only.
3- programmatically from code behind System.Web.UI.Page.MaintainScrollPositionOnPostBack = true;
: this will maintains the scroll position for this page only (the same as page declration).
You could register the a javascript to move the scroll to the position of some control that you want, like this:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
RegisterStartupScript("ScrollScript", "document.getElementById('objectId').scrollIntoView(true);");
}
}
Changing the objectId in the script for the Id of the object you want to scroll to.
As noted by Guy Starbuk in the comments, RegisterStartupScript
is deprecated in .Net 4 and now the recommended way to register a script is:
ClientScript.RegisterStartupScript(GetType(), "ScrollScript", "document.getElementById('objectId').scrollIntoView(true)", true);
In asp.net web pages you can add an OnClientClick event to the control causing the server post back to scroll the page to the bottom.
<asp:Button ID="MyButton" runat="server" Text="Submit" OnClick="MyButton_Click" OnClientClick="window.scrollTo(0, document.body.scrollHeight);" />
Create an anchor on the page, then on onload:
window.location.href = "#myanchor"
One thing missing from the answers here is a delay. It's all well and good if there is no change in the height of the web page during load. But if there are a lot of images and your trying scroll past them; they can bump your view back up again.
What is needed is a window.onload function call:
ClientScript.RegisterStartupScript(GetType(), "ScrollScript", "window.onload = function() {document.getElementById('objectid').scrollIntoView(true);}", true);
精彩评论