您的位置:首页 > Web前端

关于ViewState Pagelife等问题的思考和疑问

2006-11-12 14:37 603 查看
最近看了Cat Chen的几篇文章,自己也在试着去深入学习viewstate以及页面的生命周期,在过程当中有了更深一步的了解,又联想到了许多其他的东西,就混杂在了一块,遇到了一些新的问题。

第一、我在想刷新页面和post之间的区别,经过trace的实验,我发现每次刷新都是重复上一此请求的过程。也就是说:如果是第一次没有post的请求,刷新页面也是没有相关的post事件产生,如果是post后再刷新页面,同样也是有相关的post事件产生。

第二、在post以后再刷新页面的时候viewstate的值应该不改变,因为IsDirty的值为false想深入了解原因的请参考Cat Chen相关文章。

第三、在Cat Chen提供的一个例子中,是根据dropdownlist的值来动态的创建textbox我加上trace后代码如下:

1private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
2 {
3 for(int i=0;i<this.DropDownList1.SelectedIndex;i++)
4 {
5 System.Web.UI.WebControls.TextBox tb = new TextBox();
6 Form1.Controls.Add(tb);
7 Trace.Warn("selehandle","ni kankan");
8 }
9
10 }

页面上还有一个button来专门post,没有任何handle代码

我现在不明白的是如果把dropdownlist的viewstate禁用以后,点击button仍然执行DropDownList1_SelectedIndexChanged事件代码--从trace可以看出来。也就是说在viewstate禁用以后页面事件的执行和没有禁用viewstate时有差别?到底有什么差别?为什么会有这种差别?

第四、动态创建控件时最好时在OnInit里面写代码,但有些情况在Onload里面也是可以的,这两种方法的具体区别在哪?我知道区别在于OnInit时还没有LoadViewState(),我想知道具体的更深入的比较,我希望能有高手能针对这个写篇文章,最好能附上例子,这样象我这些新手才能更好的理解,先谢了。

在此推荐两篇文章,关于viewsate的 Understanding asp.net viewstate truely understanding viewstate
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐