2010-08-21 87 views
0

Hy, 我正在实现一个asp.net web应用程序,并且我有两个webform文件,例如first.aspx和second.aspx。记住滚动位置

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

当我在表单中输入更新的值并单击更新按钮时,我想在first.aspx上再次重定向它,并且gridview再次显示所有400个条目,但之前选定/更新的行现在已更改。我想保留滚动位置,因为它是在输入second.aspx(我想集中更新的行)之前保留滚动位置。因为这个Gridview不适合在屏幕上(高度是因为很多Gridviews条目)。我知道我可以通过modified_on值来订购GridView条目,但我必须保留原样,并且我不希望启用GridView分页...如何保留滚动位置,就像我点击时一样Select链接first.aspx?

谢谢您提前帮忙!

回答

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

+0

我认为这只适用于,如果它是回发到相同的aspx页面。但是,如果我理解正确的话,@Zhhra希望在多个页面(本例中为2)上维护滚动位置。 – davehauser 2010-08-21 10:02:57

+0

@Dave,我认为你是对的。不过,第二个链接可能会这样做。 – 2010-08-21 10:04:29

+0

是的,我认为应该这样做。对于无JavaScript的解决方案,请查看我的答案。 – davehauser 2010-08-21 10:12:24

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