int id;
protected void Page_Load(object sender, EventArgs e)
{
id =Convert.ToInt32(Request.Form["TextBox1"]);
Response.Write(id.ToString()+"---adfsdssf<br>");
} protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Response.Write(id);///这里为什么会0,不是早一面的Request.Form["TextBox1"]值呢
}
protected void Page_Load(object sender, EventArgs e)
{
id =Convert.ToInt32(Request.Form["TextBox1"]);
Response.Write(id.ToString()+"---adfsdssf<br>");
} protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Response.Write(id);///这里为什么会0,不是早一面的Request.Form["TextBox1"]值呢
}
因为Click的时候,Page_Load中的代码还是会执行,然后才执行你的Click代码。所以加上IsPostBack来判断是否是回发。换成这样试试。
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
id =Convert.ToInt32(Request.Form["TextBox1"]);
Response.Write(id.ToString()+"---adfsdssf <br>");
}
}
id =Convert.ToInt32(Request.Form["TextBox1"]);
跟踪看看TextBox1值
在提交按钮时,就为0了
{
get{return ViewState["id"].ToString();}
set{ViewState["id"]=value;}
}
{
get{return ViewState["id"].ToString();}
set{ViewState["id"]=value;}
}
这个方法可以,可是我正式页面很多变量的,还有其它办法嘛
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
id =Convert.ToInt32(Request.Form["TextBox1"]); 如果这里设是固定值2的话就可以,就不会0
Response.Write(id.ToString()+"---<br>");
}
} protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Response.Write(id);///这里为什么会0,不是早一面的Request.Form["TextBox1"]值呢
}
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
id =Convert.ToInt32(Request.Form["TextBox1"]); 如果这里设是固定值2的话就可以,就不会0
Response.Write(id.ToString()+"---<br>");
}
} protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Response.Write(id);///这里为什么会0,不是早一面的Request.Form["TextBox1"]值呢
}
如果你的TextBox1是从别的页面来的,那肯定是Request.Form["TextBox1"]没有值
查查这里吧Request.Form["TextBox1"]
页面第一次加载是0值,这个大家都知道