【问题标题】:remembering scroll position记住滚动位置
【发布时间】:2010-08-21 09:49:10
【问题描述】:

嘿, 我正在实现一个 asp.net web 应用程序,并且我有两个 webform 文件,例如 first.aspx 和 second.aspx。

在 first.aspx 上,我有一个显示大约 400 个条目(400 行)的网格视图。我启用了 gridview 选择选项,当我单击某个 gridview 行上的选择链接时,我被重定向到 second.aspx。在那个 second.aspx 页面上,我有一些输入表单和更新按钮,我正在用这个更新 Gridview 选定的行条目。

当我在该表单中输入更新的值并单击更新按钮时,我想在 first.aspx 上再次重定向它,并且 gridview 再次显示所有 400 个条目,但之前选择/更新的行现在已更改。

因为这个 Gridview 不适合屏幕(高度太大,因为有很多 Gridview 条目)我想保持滚动位置,因为它是在进入 second.aspx 之前(我想关注更新的行)。我知道我可以通过 modified_on 值对 GridView 条目进行排序,但是我必须保留所有内容,并且我不想启用 GridView 分页...如何保持滚动位置,就像我单击 选择 first.aspx 上的链接?

提前感谢您的帮助!

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

    我想你想要这个:

    http://weblogs.asp.net/hosamkamel/archive/2007/09/07/maintain-scroll-position-after-postbacks-in-asp-net-2-0.aspx

    不幸的是,我不认为这是跨浏览器感知的,但这是基于 jQuery 和这样的重定向工作,而不仅仅是回发:

    http://elijahmanor.com/webdevdotnet/post/maintain-scroll-position-on-page-refresh-using-aspnet-or-jquery.aspx

    【讨论】:

    • 我认为这只有在回发到同一个 aspx 页面时才有效。但如果我理解正确的话,@Zuhra 希望在多个(在本例中为 2)请求上保持滚动位置到不同的页面。
    • @Dave,我认为你是对的。不过,第二个链接可能会这样做。
    • 是的,我认为这应该可以解决问题。对于无 JavaScript 的解决方案,请查看我的答案。
    • 感谢 Dave 和 lasseespeholt... 这个 jquery 脚本很棒
    【解决方案2】:

    您可以使用行 id,将其传递给 second.aspx,然后将其附加到 url,当指向 first.aspx 时:

    first.aspx(生成的代码,简化):

    <table>
        <tr id="row1">
            <td>some content</td>
            ...
            <td>some content</td>
        </tr>
        <tr id="row2">
            <td>some content</td>
            ...
            <td>some content</td>
        </tr>
        ...
    </table>
    

    导航到“first.aspx#row1”现在将加载 first.aspx,然后跳转到 ID 为“row1”的行。它可能与之前的位置不完全相同,但您会直接跳转到已编辑的行。

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 2013-09-21
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多