问题描述
|
我在具有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>