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"]值呢
    }

解决方案 »

  1.   


    因为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>");
            } 
        }
      

  2.   

    加了 if(!Page.IsPostBack)也是这样
      

  3.   

    页面回传
    id =Convert.ToInt32(Request.Form["TextBox1"]); 
    跟踪看看TextBox1值
      

  4.   

    id =Convert.ToInt32(Request.Form["TextBox1"]); 这里是正确的
    在提交按钮时,就为0了
      

  5.   

    public string id
    {
     get{return ViewState["id"].ToString();}
    set{ViewState["id"]=value;}
    }
      

  6.   

    public string id 

    get{return ViewState["id"].ToString();} 
    set{ViewState["id"]=value;} 
    }
    这个方法可以,可是我正式页面很多变量的,还有其它办法嘛
      

  7.   

    控件的生命周期问题,因为控件还没有Render over,所以你获取的控件ID是0.
      

  8.   

    LZ是不是在页面上用JS修改过这个值?
      

  9.   

    int id; 
        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"]值呢 
        }
      

  10.   

    int id; 
        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"]值呢 
        }
      

  11.   

    LZ是不是在页面上用JS修改过控件的值
      

  12.   

    我想可能是先执行了按钮事件再执行了Load事件
      

  13.   

    不可能是0值
    如果你的TextBox1是从别的页面来的,那肯定是Request.Form["TextBox1"]没有值
    查查这里吧Request.Form["TextBox1"]
    页面第一次加载是0值,这个大家都知道