OnInit()在PageLoad()之前,做页面初始化 LoadViewState
PageLoad()加载页面,处理Page.IsPostBack事件,
OnInit时候PostBack事件还没有,你把if(!Page.IsPostBack)去掉,并把ViewState["Test"] = "test";放到InitializeComponent();
base.OnInit(e);后面试试呢

解决方案 »

  1.   

    在pageload事件前控件还没有完成生成的过程,所以在pageload事件前世无法引用控件的viewstate
      

  2.   

    !Page.IsPostBack
    在OnInit无法得到正确的值!
      

  3.   

    override protected void OnInit(EventArgs e)
    {
    InitializeComponent();
    base.OnInit(e);

    if(!Page.IsPostBack)
    {
    ViewState["Test"] = "test";
    }
    }
      

  4.   

    OnInit()和load的区别在于:只有在load中确保完全加载所有的控件,可以在OnInit()事件中中访问控件,但是viewstate不会被加载的!
      

  5.   

    问题是页面第一次打开的时候在Page_Load里能取到在OnInit里的if(!Page.IsPostBack)里设置的ViewState,只是这个ViewState好象不能保存其值,在点击按钮即PostBack后就会消失。照理说,我只要设置了一次ViewState,不管页面怎么重载这个值都应该保存的。但现在不能保存这个值。是这个意思吗?