点击asp.net链接按钮,将焦点设置在页面顶部

时间:2009-06-19 21:22:05

标签: c# asp.net

我有一个asp.net数据网格,显示客户订单详细信息。 网格底部的分页是使用datalist和asp.net Linkbutton控件完成的。 这是代码:

<asp:DataList ID="DataList2" runat="server" CellPadding="1" CellSpacing="1" 
        OnItemCommand="DataList2_ItemCommand" 
        OnItemDataBound="DataList2_ItemDataBound" RepeatDirection="Horizontal">
    <ItemTemplate>
        <asp:LinkButton ID="lnkbtnPaging" runat="server" 
             CommandArgument='<%# Eval("PageIndex") %>'
             CommandName="lnkbtnPaging" 
             Text='<%# Eval("PageText") %>' />
        <asp:Label runat="server" ID="lblPageSeparator" Text=" | " name=></asp:Label>
    </ItemTemplate>
</asp:DataList>

当用户点击任何页码(ie.Link按钮)时,我需要将焦点设置在页面顶部。

我该怎么做?

谢谢!

4 个答案:

答案 0 :(得分:3)

我认为默认行为是将页面滚动位置设置回页面顶部。您网页中还有其他内容可能会覆盖此行为吗?

例如:

  1. 您的DataList是否在UpdatePanel中?在这种情况下,当前滚动位置将保持在(部分)后回。因此,您需要自己将滚动位置重置到页面顶部。一种方法是为PageRequestManager的EndRequest客户端事件实现一个处理程序,该事件将设置滚动位置 - 该线程解释how
  2. Page MaintainScrollPositionOnPostBack属性是否设为true?

答案 1 :(得分:1)

您可以尝试在页面顶部设置命名锚点。这是一篇解释它的文章http://www.w3schools.com/HTML/html_links.asp

答案 2 :(得分:0)

在AJAX部分回发之后,您可能需要返回到ASPX页面的顶部以显示错误消息等。这是我完成它的一种方式。您可以将下面的JavaScript函数添加到ASPX页面,然后使用ScriptManager.RegisterClientScriptBlock方法在代码隐藏中根据需要调用该方法。 ASP.NET C#代码隐藏:

ScriptManager.RegisterClientScriptBlock(this, Page.GetType(), 
 "ToTheTop", "ToTopOfPage();", true);

JavaScript的:

<script type="text/javascript">
function ToTopOfPage(sender, args) {
    setTimeout("window.scrollTo(0, 0)", 0);
}

您也可以使用按钮的OnClientClick属性滚动到页面顶部。但是这会导致每次单击按钮时发生此行为,而不是仅在您希望它发生时发生。例如: <asp:Button id="bntTest" runat="server" Text="Test" OnClick="btn_Test" OnClientClick="javascript:window.scrollTo(0,0);" />

答案 3 :(得分:0)

<asp:LinkButton ID="lbGonder" runat="server" CssClass="IK-get" ValidationGroup="ik" OnClick="lbGonder_Click" OnClientClick="ddd();" title="Gönder">Gönder</asp:LinkButton>`
<script type="text/javascript">
var ddd = (function () {
    $('body,html').animate({
        scrollTop: 300
    }, 1453);
    return false;
});