2011-04-01 75 views
0

我有一個很長的asp.net頁面。該頁面中的HTML表格與<a>有鏈接。當鏈接被點擊時,頁面顯示使用JavaScript的文本框,並將我帶到頁面的頂部。相反,我想看到有鏈接和文本框的頁面部分。一旦頁面刷新,它應該自動向下滾動到那個部分。這怎麼可能?使用MaintainScrollPositionOnPostBack單擊鏈接按鈕時,滾動到頁面的特定部分

我試過使用Linkbutton而不是JavaScript,但有問題。

這是代碼。

<script type="text/javascript"> 
$(document).ready(
function() 
{ 
    $("#aChangeDefault").click 
    ( 

     function() 
     { 
      alert('hi'); 
      //$("#<%=trChangeLoc.ClientID %>").fadeIn(1000); 
      $("#<%=rowChangeLoc.ClientID %>").fadeIn(1000); 
     } 
    ) 

    $("#btnClose").click 
    (
     function() 
     { 
      $("#<%=rowChangeLoc.ClientID %>").fadeOut(1000);  

      if(document.getElementById("<%=divSearchResult.ClientID %>").style.display != "none") 
      { 
       $("#<%=divSearchResult.ClientID %>").fadeOut(1000); 
      } 
      //$("#<%=trChangeLoc.ClientID %>").fadeOut(10);        
     } 
    )  
} 

); 

LinkBut​​ton的是在這裏:

<asp:LinkButton id="aChangeDefault" runat="server" style="font-size: 12px;font-family:Arial;vertical-align:bottom;" ToolTip = "Click here to set your town as default location" Text ="Change Location" > </asp:LinkButton> 

這顯示了該鏈接被點擊的部分是在這裏:

<input id="btnClose" type="button" class="closeButton2" language="javascript" onclick="return btnClose_onclick()" /> 
    <div style="display: inline-block;"> 
    <span class="searchheadder" style="color: #000000; padding-right: 8px; padding-top: 4px;"> 
             LOCATION: </span> 
     <asp:TextBox ID="txtChangedLocation" onkeyup="doCapitalize();" runat="server" Height="19px" 
             Width="200px" CssClass="textBox" Style="margin-right: 10px;"></asp:TextBox> 
    <cc1:AutoCompleteExtender ID="ACE1" runat="server" TargetControlID="txtChangedLocation" ServicePath="../AutoComplete.asmx" ServiceMethod="GetCompletionList" MinimumPrefixLength="2" CompletionSetCount="10" EnableCaching="true" CompletionInterval="0" ></cc1:AutoCompleteExtender> 
     <asp:Button ID="btnGetNewList" BorderWidth="0" CssClass="searchButton" runat="server" OnClick="btnGetNewList_Click" /> </div> 

欣賞你的幫助。謝謝!

回答

1

MaintainScrollPositionOnPostBack僅當PostBack發生時纔會影響頁面在瀏覽器中的位置,並且如果您使用的是JavaScript,則不希望發生PostBack。如果你在JavaScript中做所有事情,聽起來像是當你點擊一個鏈接時,瀏覽器的默認行爲是關注鏈接,即使它是在同一頁面上的一個位置。在某些瀏覽器,在點擊事件上的<a>標籤註冊,在href屬性必須有一個值,所以它是常見的做法是使用空錨名作爲href

<a onClick="MyJavaScriptFunction()" href="#">Click here</a> 

什麼這實際上是告訴瀏覽器要做的就是調用你的函數MyJavaScriptFunction(),除非該函數的計算結果爲false,否則它將跟隨頁面頂部的錨點,這是href="#"帶你去的地方。你可以完成你的onClickreturn false;否則改變你的JavaScript函數總是返回false,無論哪種方式,將保持瀏覽器的鏈接如下:

<a onClick="MyJavaScriptFunction();return false;" href="#">Click here</a> 
+0

這只是太有意義了。我很高興我在這裏問它。有效。非常感謝 :) – Remo 2011-04-04 14:02:17

0

我不知道我明白你要做什麼,但是如果頁面正在重新加載,也許你可以使用一個命名錨來讓瀏覽器自動轉到你想要的頁面部分。