2016-03-22 62 views
-1

我提交Web表單(申請後aps.net和vb.net如何將焦點設置到特定的部分頁面加載時,使瀏覽器滾動到該位置

在我的應用程序的工作。 aspx)用戶被重定向到另一個(application_complete.aspx)頁面。

application.aspx頁面中的webform非常長。用戶必須向下滾動以完成表單並提交。問題是在提交表單(appplication.aspx)之後,application_complete.aspx頁面也變得很長(與application.aspx的大小相同),儘管它沒有太多內容,並且使瀏覽器自動定位在同一位置(底部這一頁)。因此用戶必須向上滾動才能閱讀該消息。這對用戶來說非常刺激。 (見picures)

圖片1:(appplication.aspx) enter image description here

圖片2:application_complete.aspx enter image description here

我需要什麼樣的 我想使頁面(APPLICATION_COMPLETE .aspx)在頁面頂部的位置,並在該頁面的消息部分設置焦點。

這是我的application_complete.aspx頁面代碼

<%@ Page Title="" Language="VB" MasterPageFile="~/c/MasterPage.master" AutoEventWireup="false" CodeFile="application-complete.aspx.vb" Inherits="c_application_complete" %> 
<%@ MasterType VirtualPath="~/c/MasterPage.master" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="mainContent" Runat="Server"> 


<h2>Thank you! we have now received your application</h2> 

<div class="btn-wrapper"> 
    <a target="_parent" href="<%= Master.EmployerCareersHome %>" class="btn v-view-all">View other open positions</a> 
</div> 

</asp:Content> 

,這是我application_complete.aspx.vb代碼

Partial Class c_application_complete 
    Inherits System.Web.UI.Page 

End Class 

我曾嘗試在application_complete.aspx頁面,並通過添加以下腳本給div部分提供一個id。

<asp:Content ID="Content3" ContentPlaceHolderID="ScriptContent" runat="server"> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#<%= dvbtn.ClientID %>").focus(); 

    }); 
</script> 

</asp:Content> 

and in application_complete.aspx.vb page。

Protected Sub PageLoad(ByVal sender As Object, ByVal e As EventArgs) 

     Page.SetFocus(dvbtn) 

    End Sub 

但那不工作。

爲了您的信息

  1. 整個的表單,它的所有功能,是一個IFRAME。是有可能使母公司的網頁滾動,從一個iframe的特定位置(在頂部)。

  2. 儘管application_complete頁面中沒有太多內容仍然因爲長格式(在application.aspx頁面中),但此頁面(application_complete)也變爲long.and如果有人刷新它,那麼頁面會恢復到其原始大小並且專注於最高的地位。但刷新導致重新提交表單,所以不能這樣做。

期待您的幫助。

+0

像這樣? http://getbootstrap.com/javascript/#tooltips我給出了URL的例子,而不是它顯示的內容。該頁面會滾動到所需的部分。 –

回答

1

在你頁面放一個錨一樣的東西:

<a name="loadtohere" /> 

然後在您的重定向,發送頁面:

page.aspx#loadtohere

編輯:

OK ,在你的源代碼文件中添加上面的html:

<a name="loadtohere" /> 

然後在後面的代碼:

// Create the redirect link (better way of creating your string) 
Dim redirect = String.Format("application-complete.aspx?e={0}&b={1}&i={2}&hp={3}&hI={4}#loadtohere, Vacancy.EmployerID, CInt(Request("b")), Vacancy.ID, Request("hp"), Request("hI")) 

// Redirect to the page 
Response.Redirect(redirect) 

的「loadtohere」文本可以改變任何你想要的,它是錨頁面移動加載時的只是名字。

+0

Response.Redirect(「application-complete.aspx?e =」&Vacancy.EmployerID&「&b =」&CInt(Request(「b」))&「&i =」&Vacancy.ID&「&hp =」&Request (「hp」)&「&hI =」&Request(「hI」)) - 請您詳細說明。我在這個co very中很窮。這是我的重定向代碼。 – Bashabi

+0

你救了我。非常感謝。 – Bashabi

0

我的元素沒有收到焦點的原因是因爲它是<div>而不是實際的<button>元素。默認情況下,<div>元素不會被選爲製表符順序的一部分,因此他們通常不會獲得焦點。

所以我解決了聚焦問題,通過添加一個tabindex屬性到我的div元素。

<div class="btn-wrapper" id="dvbtn" runat="server" tabindex="0" autofocus> 
    <a target="_parent" href="<%= Master.EmployerCareersHome %>" class="btn v-view-all">View other open positions</a> 
</div> 

,並與腳本

<asp:Content ID="Content3" ContentPlaceHolderID="ScriptContent" runat="server"> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
       $("#<%= dvbtn.ClientID %>").focus(); 

     }); 
    </script> 

</asp:Content> 

SETFOCUS也解決了滾動的問題。

相關問題