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

C# 单击asp.net链接按钮,在页面顶部设置焦点,c#,asp.net,C#,Asp.net,我有一个asp.net数据网格,它显示客户订单的详细信息。 网格底部的分页是使用datalist和asp.net Linkbutton控件完成的。 代码如下: <asp:DataList ID="DataList2" runat="server" CellPadding="1" CellSpacing="1" OnItemCommand="DataList2_ItemCommand" OnItemDataBound="DataList2_ItemData

我有一个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>

当用户单击任何页码(即链接按钮)时,我需要将焦点设置在页面顶部

我该怎么做


谢谢

您可以尝试在页面顶部设置命名锚。这里有一篇文章解释了这一点

您可以尝试在页面顶部设置一个命名锚。这里有一篇文章解释了这一点

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

例如:

  • 您的数据列表是否在UpdatePanel中?在这种情况下,当前滚动位置将保持在(部分)回邮上。因此,您需要自己将滚动位置重置到页面顶部。实现这一点的一种方法是为PageRequestManager的EndRequest客户端事件实现一个处理程序,该事件将设置滚动位置-此线程解释
  • 页面维护ScrollPositionOnPostBack属性是否设置为true

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

    例如:

  • 您的数据列表是否在UpdatePanel中?在这种情况下,当前滚动位置将保持在(部分)回邮上。因此,您需要自己将滚动位置重置到页面顶部。实现这一点的一种方法是为PageRequestManager的EndRequest客户端事件实现一个处理程序,该事件将设置滚动位置-此线程解释
  • 页面维护ScrollPositionOnPostBack属性是否设置为true

  • 在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);
    }
    
    
    函数toTopoPage(发送方,参数){
    setTimeout(“window.scrollTo(0,0)”,0);
    }
    

    您还可以使用按钮的
    OnClientClick
    属性,使用JavaScript滚动到页面顶部。但这将导致每次单击按钮时都会发生此行为,而不仅仅是在您希望它发生时。例如:

    在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);
    }
    
    
    函数toTopoPage(发送方,参数){
    setTimeout(“window.scrollTo(0,0)”,0);
    }
    

    您还可以使用按钮的
    OnClientClick
    属性,使用JavaScript滚动到页面顶部。但这将导致每次单击按钮时都会发生此行为,而不仅仅是在您希望它发生时。例如:

    Gönder`
    var ddd=(函数(){
    $('body,html')。设置动画({
    滚动顶部:300
    }, 1453);
    返回false;
    });
    

    Gönder`
    var ddd=(函数(){
    $('body,html')。设置动画({
    滚动顶部:300
    }, 1453);
    返回false;
    });
    

    非常感谢您的输入…:正如上面第1点所建议的,下面的代码对我有用!Sys.WebForms.PageRequestManager.getInstance().add_endRequest(pageLoaded);函数pageLoaded(sender,args){window.scrollTo(0,0)}非常感谢您的输入…:正如上面第#1点所建议的,下面的代码适合我!Sys.WebForms.PageRequestManager.getInstance().add_endRequest(pageLoaded);函数pageLoaded(sender,args){window.scrollTo(0,0);}如果是这种情况,您可以始终只使用标准html,这只是另一行标记。这就像ASP.NET中的linkbutton、label、hyperlink和table控件一样,最好用html来代替。在我看来,如果是这样的话,您可以始终使用标准html,这只是另一行标记。像ASP.NET中的linkbutton、label、hyperlink和table控件一样,最好用html替换。无论如何,在我看来,您的答案应该包含对代码的解释以及它如何解决问题的描述。您的答案应该包含对代码的解释以及它如何解决问题的描述。