一个很奇怪的传值问题,搞了我一个下午,晕!
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()
}
试试!