Như bạn đang sử dụng UpdatePanels bạn sẽ cần phải móc vào ASP.NET AJAX PageRequestManager
Bạn sẽ cần phải thêm một phương pháp để các endRequest móc sự kiện đó là:
Tăng sau khi một postback không đồng bộ được hoàn thành và kiểm soát đã được trả lại cho trình duyệt.
Vì vậy, bạn muốn có một cái gì đó như:
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(pageLoaded);
function pageLoaded(sender, args) {
window.scrollTo(0,0);
}
</script>
Mà sẽ buộc các trình duyệt để di chuyển trở lại đầu trang từng là một yêu cầu cập nhật đã hoàn thành.
Có những sự kiện khác mà bạn có thể móc vào thay vì khóa học:
beginRequest // Raised before the request is sent
initializeRequest // Raised as the request is initialised (good for cancelling)
pageLoaded // Raised once the request has returned, and content is loaded
pageLoading // Raised once the request has returned, and before content is loaded
Vẻ đẹp của không đồng bộ sau lưng là trang sẽ duy trì chiều cao cuộn mà không cần phải thiết lập MaintainScrollPosition, như không có "tải lại toàn bộ trang" xảy ra, trong trường hợp này bạn thực sự muốn hiệu ứng đó xảy ra, vì vậy bạn sẽ cần phải tạo thủ công nó.
Sửa để đáp ứng được cập nhật câu hỏi
Ok, vì vậy nếu bạn cần phải thiết lập lại chỉ những vị trí nút bấm chắc chắn bạn sẽ cần phải làm một cái gì đó như thế này:
Bắt đầu bằng cách hooking vào BeginRequest thay/cũng như:
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Điều này là do trong args tham số bạn nhận được quyền truy cập vào:
012.
args.get_postBackElement().id
Điều này sẽ cho bạn biết id của nút đã bắt đầu toàn bộ sự kiện - sau đó bạn có thể kiểm tra giá trị tại đây và di chuyển trang hoặc lưu nó trong một biến và truy vấn nó trong yêu cầu cuối cùng - nhận thức được điều kiện chủng tộc, v.v. trong đó người dùng nhấp vào một nút khác trước khi cập nhật ban đầu của bạn hoàn tất.
Điều đó sẽ giúp bạn có được đi với bất kỳ may mắn - có khá một vài ví dụ xung quanh này trên Working with PageRequestManager Events
Tôi chỉ muốn quay lại đầu trang với sự kiện cụ thể này của GridView ASP.NET. Tôi có một loạt các nút khác trên cùng một trang mà tôi muốn duy trì vị trí cuộn cho. –