关于用户自定义控件动态生成控件以及事件问题

用户控件A,动态生成一个Button 然后为Button绑定一个事件,触发流程过程

Page->Page_Load->A_Load(可以加载Button样式和事件)->A_OnPreRender(只能在第一次加载时触发,用于加载样式和数据,不能加载事件,如果加载过就再也不加载)

1、OnPreInit:当框架调用该方法时,引发PreInit事件。在该事件中主要是应用App_Themes中的主题,与应用母版页,通常这一步我们不需要做什么

2、OnInit: 在这一步中,框架将初始化该页面所应用到得控件,然后将应用的Themes应用给控件,递归的触发子控件的Init方法。

3、OnInitComplete:这是一个标志事件,他的调用标示这初始化完成,所有子控件均已经初始化完毕,所以Themes都已经应用。

4、OnPreLoad:该事件标志着页面进入加载状态,在该事件中,框架会为自身和所有控件加载视图状态,然后会处理Request实例包含所有回发数据。

5、OnLoad:Load事件是我们通常运用最平凡的事件,也就是Page_Load事件,Page_xxx是所有时间的一种时间链接形式,如Page_Init将调用OnInit方法。这个事件中可以处理回发,由于视图状态,Themes,子控件都已经初始化完毕,所以便于我们添加逻辑而不必担心被其他事件把值给覆盖掉。值得注意的是,任何页面的Load顺序是先自己,再子控件,如:一个aspx页面被调用Load事件,先加载本身,然后再加载如母版页、用户控件、第三方服务器控件等。

6、OnLoadComplete:标志着所有控件的加载完成。下一步则是将加载内容进行呈现。

7、OnPreRender:该事件处理准备呈现的一些工作,如,对设置了DataSource的控件进行DataBind,通常,我们可以在这个事件上动态修改某些控件的值。

8、OnPreRenderComplete:该事件标志着准备呈现完成,数据已经完成绑定。

9:SaveViewState:该事件中,将序列化ViewState,然后再页面中以一个input:hidden的元素保存试图状态。

10:Render:在这个阶段,框架会调用所有控件的Render方法,进行页面呈现。以生产html页。

11:Unload:在页面生命周期结束后,进行卸载。

愚见,可能不对。等有时间再完善

原文地址:https://www.cnblogs.com/fourspace/p/4209823.html