我们公司是采用list/Detail的页面逻辑,即list页面有一个DataGrid,列出了一些项,点击其中一项后,页面跳转到Detail页面查看该项的详细。Detail页面有一个返回按钮,点击后即返回到list页面。list中的数据列表通常是经过筛选的,如xxx大于20的,然后还经过了排序的。      现在问题是这样的:      用户要求,当从Detail返回到list中时,数据列表中的状态不变。     公司认为,这是一个合理的要求,因为数据量实在太大,谁都不想返回list就又得从第一页看起。      还要求,刚才看的Detail的项目必须是在list的数据列表的当前页,而不一定是进入前list数据列表的那一页;但如果在Detail中把当前项删除,返回则必须是在进入前list数据列表的那一页。  

解决方案 »

  1.   

    晕!如果你的网页不是用ajax来做的浏览器会自动记住的!直接返回就可以了....就算是ajax来做的vs2008以后的版本也已经实现了这个功能...其它框架也是可以通来自己处理能实现的...
      

  2.   

    不用  按钮
    如果用按钮的话 直接跳转回去相当于重新打开list页面
    或者 在跳转之前记录Url  跳转之后 cookies 传到detail页面  在返回里面获取cookies 值
      跳转的时候  跳转到cookies  的值的页面
      

  3.   

    我也同问:如果用cookies 保存.那如果要保存的栏目很多.那这些也都要保存中?
    或者把你要查询的参数与值都在url中传过去..然后返回时.又传回来...
      

  4.   

    传过去的时候url把原参数都带上吧
      

  5.   

    问题本人已经解决,可以通过上下文来保存SQL。
    下面是我做的一个小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" );
        }
    }