我有2个页面,a.aspx和b.aspx  放到一个框架里在a.aspx里根据条件查询到结果后 点击连接转到b.aspx 这时候b想返回到a 并且a刚才查询到的结果还在 怎么做别告诉我用Response.Write("<script   languange=javascript>history.go(-1);</script>");我不想用这个方法

解决方案 »

  1.   

    把刚才在a.aspx里的输入的查询条件保存在session或数据库中,加载时获取一遍
      

  2.   

    你在查询出来结果后,就把查询条件保存到SESSION中(一般是一个对象,其中各个字段就是查询条件的内容),然后当你返回A页面的时候,先判断SESSION是否为空,如果不为空就从SESSION中取出查询条件,并填入查询条件进行一次查询,然后把SESSION清空,如果SESSION为空就不做处理
      

  3.   

    Response.Write("<a href=\"" + Request.UrlReferrer == null ? "javascript:history.back(-1);" : Request.UrlReferrer.ToString() + "\">test</a>");
      

  4.   

    以上语句只适用于get方式获得数据的页面a
    post方式的话,不能保持.如果页面a的数据是post过来的,只能通过某种载体,比如cookies,session等记录post数据,返回时重新执行.
      

  5.   

    如果结果集合中,是gridview显示的.而且,用户点分页了.是不是除了查询条件外,页号也要记进去?而且需要后台代码进行页号处理.
    感觉有点麻烦.有没有其他更好的办法?
      

  6.   

    6 楼说的情况还是值得考虑的, 我想是不是 把 b.aspx以 弹出窗口的形式,然后在b.aspx页面想返回的时候,就直接关闭了b.aspx,a.aspx页面还是原来那样。
      

  7.   

    在网上搜一下asp.net页面参数传递.
    有四五种方法可选的.session,cookies,url,post(get),还有server.tra什么的.
      

  8.   

    用viewstate保存请求的url
    然后 write回去
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ViewState["url"] = login.aspx";            if (!object.Equals(Request.QueryString["ReturnUrl"], null))
                {
                    string fromurl = Request.QueryString["ReturnUrl"].ToString().Trim();
                    if (fromurl != "")
                    {
                        ViewState["url"] = fromurl;
                    }
                }
            }
        }
    protected void CheckLogin()
    {
    Response.Redirect(ViewState["url"].ToString());
    }