【问题标题】:Setting focus on top of the page on click of asp.net link button单击 asp.net 链接按钮将焦点设置在页面顶部
【发布时间】:2010-11-04 10:33:00
【问题描述】:

我有一个显示客户订单详细信息的 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>

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

我该怎么做?

谢谢!

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

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

    【讨论】:

    • 如果是这种情况,您总是可以只使用标准 html,它只是另一行标记。在我看来,就像 ASP.NET 中的链接按钮、标签、超链接和表格控件一样,最好还是用 html 代替
    【解决方案2】:

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

    例如:

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

    【讨论】:

    • 非常感谢您的输入...:正如上面第 1 点所建议的,以下代码对我有用!
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:
      <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;
      });
      

      【讨论】:

      • 你的答案应该包含对你的代码的解释和它如何解决问题的描述。
      猜你喜欢
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 2011-01-04
      相关资源
      最近更新 更多