我们公司是采用list/Detail的页面逻辑,即list页面有一个DataGrid,列出了一些项,点击其中一项后,页面跳转到Detail页面查看该项的详细。Detail页面有一个返回按钮,点击后即返回到list页面。list中的数据列表通常是经过筛选的,如xxx大于20的,然后还经过了排序的。 现在问题是这样的: 用户要求,当从Detail返回到list中时,数据列表中的状态不变。 公司认为,这是一个合理的要求,因为数据量实在太大,谁都不想返回list就又得从第一页看起。 还要求,刚才看的Detail的项目必须是在list的数据列表的当前页,而不一定是进入前list数据列表的那一页;但如果在Detail中把当前项删除,返回则必须是在进入前list数据列表的那一页。
如果用按钮的话 直接跳转回去相当于重新打开list页面
或者 在跳转之前记录Url 跳转之后 cookies 传到detail页面 在返回里面获取cookies 值
跳转的时候 跳转到cookies 的值的页面
或者把你要查询的参数与值都在url中传过去..然后返回时.又传回来...
下面是我做的一个小DEMO,一起分享下
//查询页面
public partial class Serach : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e )
{
if ( !IsPostBack )
{
Result result;
if ( Context.Handler is Result )
{
result = Context.Handler as Result;
Response.Write( result.text );
}
}
} public string datatime
{
get { return this.TextBox1.Text; }
set { this.TextBox1.Text = value; }
}
protected void Button1_Click( object sender, EventArgs e )
{
Server.Transfer( "Result.aspx" );
}
}//结果页面
public partial class Result : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if ( !IsPostBack )
{
Serach serach;
if ( Context.Handler is Serach )
{
serach = Context.Handler as Serach;
this.HiddenField1.Value=serach.datatime ;
}
}
} public string text
{
get { return this.HiddenField1.Value; }
set { this.HiddenField1.Value = value; }
}
protected void btnText_Click( object sender, EventArgs e )
{
Server.Transfer( "Serach.aspx" );
}
}