日期:2014-05-20  浏览次数:20458 次

一个很奇怪的传值问题,搞了我一个下午,晕!
A页面   有一个textbox控件txtSearch,一个button按钮btn_search
B页面   也有一个textbox控件txtSearch,一个button按钮btn_search

A页面的事件
private   void   btn_search_Click(object   sender,   System.EventArgs   e)
{
String   searchText=txtSearch.Text.ToString();
Response.Redirect((new   StringBuilder( "B.Aspx "))     //向B页面查询
.Append( "?tags= ")
.Append(Server.UrlDecode(searchText)).ToString(),false);

}

B页面Page_Load时有一句:txtSearch.Text   ==Request.QueryString[ "tags "].ToString();
将从A页面传过来的tags比如是“aaa”存到了txtSearch中,这些都没问题。

问题是,B页面的事件如下(同A页面的按钮事件代码是一样的):
private   void   btn_search_Click(object   sender,   System.EventArgs   e)
{

String   searchText=txtSearch.Text.ToString();

Response.Redirect((new   StringBuilder( "B.Aspx "))     //向本页面查询
.Append( "?tags= ")
.Append(Server.UrlDecode(searchText)).ToString(),false);

}
无论我在B页面中的   txtSearch   输入什么值,跟踪到String   searchText=txtSearch.Text.ToString()时searchText的值始终都是原来在A页面传过来的值 "aaa ",怎么回事呢???

如果我把B页面Page_Load时那一句txtSearch.Text   ==Request.QueryString[ "tags "].ToString()删除,则在B页面的btn_search_Click事件时,就能取到B页面txtSearch.Text所输入的值,而不再是 "aaa "。

好奇怪的问题!请各位指教!

------解决方案--------------------
txtSearch.Text ==Request.QueryString[ "tags "].ToString();
==
还是
=
??
------解决方案--------------------
B页面加上
if(!Page.IsPostBack)
{
txtSearch.Text =Request.QueryString[ "tags "].ToString()
}

试试!