2011-04-01 76 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

我不知道我明白你要做什么,但是如果页面正在重新加载,也许你可以使用一个命名锚来让浏览器自动转到你想要的页面部分。