网上有的资料在说Page_Init这个事件只会在第一次加载页面时触发,实际上并不是这样,我们会发现每次回发页面,Page_Init事件都会被执行,

举一个例子

private static int times = 0;

protected  void Page_Init(object sender, EventArgs e)

{

  base.OnInit(e);

  times++;  //1

   this.Label5.Text = times.ToString();

},再添加一个button,用来做

我们会发现,事实上这个函数还是执行了,但是在这个函数中对控件的修改无效,页面上一直都是1。

我们一起来看一下执行过程,

第一次加载Page_Init事件,页面上的控件都还“没有加载好”,或者说也都在初始化阶段,给控件赋值,展示到页面中。在这个过程中的LoadViewState事件

没有执行,因为这个事件在页面回发时才执行时才执行。再点击Button按钮,这时候页面回发,Page_Init事件被触发,次数也加1,但是再往下Text属性赋值会被后期的ViewState恢复等操作覆盖掉。

所以我们会看到Text的值保持不变,除非在PageLoad事件中赋值。

如果我们设置EnableViewState="false",就会发现ViewState不会执行覆盖操作了,每次点击按钮,次数都会加一。

最新文章

  1. 一个技术汪的开源梦 —— 基于 .Net Core 的组件 Nuget 包制作 & 发布
  2. SQL Server 默认跟踪(Default Trace)
  3. DB2表的重组
  4. HDU4870 Rating(概率)
  5. location.pathname;outline:medium;undefined不能加引号
  6. Form_Form标准控件Folder开发解析(案列)
  7. linux命令(13) 删除指定文件夹下后缀名相同的文件
  8. HDOJ 1518 Square
  9. 通过jcifs.jar 创建远程文件和文件夹
  10. Android apk程序调用其它的APK程序
  11. ios 学习笔记(8) 控件 按钮(UIButton)的使用方法
  12. I/O操作技术
  13. 【PHP】基础学习
  14. Project facet is Java version 1.7 is not spported
  15. Linux Debugging(二): 熟悉AT&T汇编语言
  16. 笔试中常用c++接口
  17. Java Scanner篇
  18. 1.4eigen中的块运算
  19. redis-4.0.11主从配置初步探究
  20. S5PV210串口

热门文章

  1. 使用Vibrator控制手机振动
  2. 一模 (5) day1
  3. Android调用Sqlite数据库时自动生成db-journal文件的原因
  4. HDU 3966 基础树链剖分
  5. IBInspectable / IBDesignable
  6. OpenCV之响应鼠标(四):在图像上绘制出矩形并标出起点的坐标
  7. 创建dialog
  8. YAML 语言语法
  9. Typographical Concepts
  10. java.lang包的分类