我通过反复试验得到了这个,但我真的很感激解释。
摘要:我正在从主机页面动态加载用户控件。
主页.aspx
OnInit执行LoadControl并加载控件
User control .ascx
On Page_Load
-> First time load
--> I set a value to a hidden input type variable
--> I set a value to a ViewState object (using ViewState["test"] = "test")
-> Subsequent post backs
--> Hidden var still persists
--> ViewState is NULL !! (Why?)
If i move the code from Page_Load to Oninit:
-> Subsequent post backs
--> Both hidden var and Viewstate is NULL!
为什么?
答案 0 :(得分:1)
在初始化阶段之后,
这就是你需要在那里加载控件的原因:因为如果等到加载viewstate之后,那么控件的状态将不会恢复 - 它已经通过了那个阶段。