我们在Control.SaveViewState是如何保存视图信息的中说的是Control的SaveViewState方法,WebControl继承自Control,WebControl重写了Control.SaveViewState方法,很多web控件都继承于WebControl,所以我们有必要说一下WebControl.SaveViewState()方法,这个方法的源码如下:

WebControl.SaveViewState是如何保存视图信息的private StateBag attrState; 
 1        }

代码的第10行,判断控件的Enabled属性。
代码的第14行,通过ControlStyleCreated的值指示是否已为 ControlStyle 属性创建了 Style 对象。
代码的第20行,表示调用Control.SaveViewState()方法。
我们需要注意的地方地方是ControlStyle和attrState里边存储的都是什么数据?我们平时的哪些操作和这两个集合有关系?
我们先说说ControlStyle,我们通过这个属性存储Web 服务器控件的样式。
WebControl.ControlStyle的源码:

 1        }
Control.CreateControlStyle()源码:
1        }

从以上两个方法可以看出,ControlStyle返回的是Style类型的对象,在实例化Style的过程中,需要ViewState属性,我们知道WebControl的ViewState是继承自Control。我们平时对控件的样式进行操作。例如如下代码:

WebControl.SaveViewState是如何保存视图信息的    void Page_Load(Object sender, EventArgs e)
    }

就是通过Style对象,将值存入WebControl.ViewState。

我们说过了ControlStyle属性,下边说说attrState字段,attrState是在WebControl声明的StateBag类型的字段,Attributes属性和attrState字段相关联,但并不是直接调用它,而是通过AttributeCollection,我们一会看看源代码就清楚多了。微软对Attributes的解释为:控件的属性不对应的任意特性(只用于呈现)的集合。老实说,这个解释不好理解,所幸的是,这个属性我们平时用的比较多,理解起来就好多了。
Attributes属性的源码为:

 1WebControl.SaveViewState是如何保存视图信息的Code
 2        }

下边还是用代码说明吧,看看Attributes的用法都体现在哪些地方:

 1WebControl.SaveViewState是如何保存视图信息的    void Page_Load(Object sender, EventArgs e)
 2    }

WebControl.SaveViewState中主要的东西我们都已经说过了,就不难理解其方法的内涵。

相关文章:

  • 2022-12-23
  • 2021-12-23
  • 2021-09-15
  • 2022-12-23
  • 2021-10-29
  • 2021-10-26
  • 2021-08-29
猜你喜欢
  • 2021-11-01
  • 2021-07-20
  • 2021-07-11
  • 2021-09-05
  • 2022-01-18
  • 2022-01-05
相关资源
相似解决方案