protected void Page_Load(object sender, EventArgs e)
    {
        this.Label1.Text = "Type = " + ViewState["test"];
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        ViewState["test"] = "Yes";
    }你知道这段代码,为什么第一次button后,ViewState的值传不到Page_Load,需要点两次以上才能传到Page_Load里,你知道是什么问题不

解决方案 »

  1.   

    点击button后,先执行Page_Load,再执行Button1_Click;
    再次点击button,再执行Page_Load,再执行Button1_Click;
    所以出现你的结果
      

  2.   

    page_load 在按钮事件之前执行的.  初学很多都弄不清页面的机制建议找找.net页面执行机制相关的资料看看
      

  3.   

    因为Page_Load的时候
    ViewState["test"]是木有值的
    点了button的时候才给ViewState["test']赋值
      

  4.   

    确实先执行PAGE_LOAD,可将操作放在button事件里
      

  5.   

    点BUTTON的时候是先 PAGE_LOAD,在执行BUTTON滴,所以第一次看不到喽
      

  6.   

    有没有办法,点一次button让值传到Page_Load里
      

  7.   

    page_load总是先于该页面其他方法执行的。
      

  8.   

    楼上都是对滴。了解页面生命周期模型,知道哪个事件合适发生,很重要。要想正确地刷新Label1的值,不应该写在page_load中,而应该写在page_PreRender中。网上大多数的“范例”都在page_Load中写代码,不要因此以为什么代码都在那里写。