首页 相关文章 深入理解 ViewState

深入理解 ViewState

  上个星期写了一篇《控件 ViewState 属性的值保存去哪里了》,解释了Control.ViewState最终还是通过Control.SaveViewState和Control.LoadViewState这两个方法存取的。文章中有一句话可能会让大家感到疑惑的:“我们在OnInit之后使用this.ViewState[key]读写时该属性都为true”,其中“该属性”指StateItem.IsDirty。到底为什么IsDirty属性在OnInit之后总是为true呢?参考了TRULY Understanding ViewState,我终于明白到其实它并非总是为true,详细原因请听我慢慢说。

  首先要让大家来看的是StateBag.TrackViewState方法,这个方法在控件OnInit时就会被调用,而它的作用就是让StateBag开始跟踪StateItem的变化,任何变化都将导致该StateItem的IsDirty属性变为true。也就是说,在OnInit之前,IsDirty属性是false的,并且无论你如何设置Value属性的值都不会改变IsDirty属性。在OnInit之后,IsDirty属性也保持着false,直到你第一次改变Value属性的值(指...[ 查看全文 ]

2016-02-19 标签:

深入理解 ViewState的相关文章

手机页面
收藏网站 回到头部