Gridview:用户单击后如何还原页面位置

问题描述

| 我在具有10个页面页面上有一个gridview控件,在那个gridview列中,我有一个链接用户可以在其中单击链接,它将转到另一个页面。 我的gridview控件位于mainpage.aspx上:
<asp:GridView ID=\"gv\" Width=\"100%\" runat=\"server\" AllowPaging=\"true\"/>
<Columns>

 <asp:TemplateField ShowHeader=\"true\"> 
  <ItemTemplate>
      <asp:Label ID=\"lblTitle\" runat=\"server\" Text=\'<%# Eval(\"Title\") %>\' />
           <asp:HyperLink id=\"hlView\" runat=\"server\">View Users</asp:HyperLink> 
 </ItemTemplate>
 ......................
 ......................
 .......................


public void gv_RowDataBound(object sender,GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DaTarow)
  {
    HyperLink hl = e.Row.FindControl(\"hlView\") as HyperLink;
    Customers t = e.Row.DataItem;
    hl.NavigateUrl = \"User.aspx?Id=\" + t.Id;
    ..................
    ......................
在我的User.aspx页面我有
<a href=\"#\" onclick=\"javascript:history.go(-1);return true;\">Back To Page</a> 
我的问题是: 这是我遇到的scanrio,不确定如何解决此问题。 让我说,我在mainpage.aspx的第7页上,我单击链接,当我单击
BAck to Page
时,它将带我到user.aspx页和从user.aspx,然后它将带我到页面,但我将降落在第1页而不是第7页 如何恢复或维护页码并返回到我来自的页面? 有没有办法做到这一点?     

解决方法

        会话状态是您的朋友。您可以将结果集与结果集页面一起存储到会话中,也可以仅将页面存储在会话中并查询数据。 我只是不记得您是否使用page_int或preload事件-其中之一...它将在页面加载时起作用。 如Wicked Coder所说,使用Session [\“ PrevPage \”],将其填写在page_loaded事件中,单击event     ,        你怎么样
<a href=\"javascript:history.back();\" target=\"_self\">Go Back Page</a>
如果无法解决问题,您可以随时创建一个Session [\“ PrevPage \”]并将先前的页面名称存储在该会话中,并在单击时使用它。但这不是首选的方式。 编辑: 从aspx页面使用Session。
<a href=\'<%=Session[\"PrevPage\"]%>\'>Back To Page</a>