记住滚动位置

时间:2010-08-21 09:49:10

标签: asp.net gridview

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

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

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

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

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我想你想要这个:

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

答案 1 :(得分:0)

您可以使用行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”的行。它可能与之前的位置不完全相同,但您直接跳到已编辑的行。