我现在做毕设的时候,碰到一个页面刷新问题,我主要做的是一个搜索界面(称为界面A),和一个搜索结果显示界面(称为界面B)  A中有两个textbox,一个用于关键字,另一个用于城市属性,还有一个BUTTON,我把A中信息填好以后传值到B界面,然后在B中的Page_Load函数中接收值并实现搜索,
现在我想在B中再添加和A中一样的两个textbox、一个BUTTON,从而实现在B中可以重新搜索
下面是我A中BUTTON的click代码:
private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Session["input"]=input.Value.ToString().Trim();
Session["incity"]=Textbox1.Text.ToString().Trim();
string url;
url="B.aspx?input="+input.Value.Trim()+"&incity="+Textbox1.Text.Trim();
Response.Redirect(url);
}然后在B中的Pageload中:用SerchKey=Request.QueryString["input"];
city=Request.QueryString["incity"];接收值并实现了搜索我在B中的BUTTON的CLICK代码为:
private void Button1_Click(object sender, System.EventArgs e)
{

Session["input"]=TextBox2.Text.ToString();
Session["incity"]=TextBox3.Text.ToString();
string url;
url="B.aspx?input="+TextBox2.Text+"&incity="+TextBox3.Text;
Response.Redirect(url);
}
问题出来了:我想在B调出来的时候,TextBox1和TextBox2中先保存A中对应的值,然后我再在B中改值,按button以后可以重新搜索,可是当我把TextBox1.Text=SerchKey;TextBox2.Text=city;放到B里面pageload中任何位置时,重新搜索,始终两个TextBox都是显示先前的结果值,不能改变;
当我把TextBox1.Text=SerchKey;TextBox2.Text=city;删掉以后,A输值,B调出来时B中两个TextBox都是显示空值,但是可以在他们里面重新输入值,重新搜索成功!
我想实现我要求的功能时,应该如何添加TextBox1.Text=SerchKey;TextBox2.Text=city;还是应该用其他方法?急死我了,望高手们帮帮小弟!感激不尽!

解决方案 »

  1.   

    b.aspx的Page_Load()
    应该是
    if(!IsPostBack)
    {
    //搜索代码
    }
      

  2.   

    你改成下面的:
    Page_Load:if(!IsPostback) {
        TextBox2.Text=Request.QueryString["input"];
        TextBox3.Text=Request.QueryString["incity"];
    }
      

  3.   

    然后在B中的Pageload
    if(!IsPostBack)
    {
        SerchKey=Request.QueryString["input"];
        city=Request.QueryString["incity"];
        TextBox1.Text=SerchKey;
        TextBox2.Text=city;
        //搜索处理
    }