在Init事件里,不处理
ViewState
Page_Init 是初始化页面,Page_Load是读取加载。
首先,我们要弄明白,Page是一个Class,这个明白吧?
然后,Page有两个事件,一个是Load事件,另外一个是Init事件。
然后,在那个构造方法里面,比如一般是Web
Form1()
里面调了一个方法InitComponent(),在这个方法里面,为Page类的两个事件定义了两个处理方法,即
this.Load += new System.EventHandler(this.Page_Init);
this.Load += new System.EventHandler(this.Page_Load);
注意,这个Page_Load你可以改用你任何喜欢的名字:)
然后,你就可以在Page_Load里面写任何你喜欢写的代码了。
如果是WinForm的话,那上面的Page应该换为System.Windows
.Forms.Form
这个类了。
事件的触发次序是page_init在先,page_load在后
他们都是不可或缺的,所以如果你重载这两个方法,不要忘记调用父类的同名方法,不然会出现很大问题。
在页面的init方法中,会“逐一调用所有子控件”,执行这样四项主要任务:
1. 从页面上的ViewState隐藏字段取回上一页面的状态值。
2. 取得用户新修改过的值(Post值)。如果发觉修改,还会记录下来准备触发changed事件。
3. 取得event事件,例如各个控件的click事件或者用户定义的事件,也是记录下来。
4. 调用TrackViewState方法,通知控件此时之后对ViewState的修改都需要输出保存到页面上。
在页面的load方法中,会“逐一调用所有子控件”的load事件。一般来说用户自定义的对控件属性的修改操作在此时完成。
但是,如果在page的load方法中动态地向控件的Controls集合添加新的子控件,此时仍然会对被添加的子控件执行上述所有操作。因此如果你创建
一个子控件,然后设置一个viewstate值,然后才把它放入page控件树中,会发现这个viewstate值没有保存住,又被原来的值“回填”回来
了。
在页面的load方法之后,才会触发各个控件的changed事件,之后是各种click和自定义事件。
控件自己从viewstate字段取回值的时候,是根据clientID作为唯一标识符的。此值是根据上层控件(如果未实现
INamingContainer接口则继续查找上层控件)的clientID加上自己的ID组合而成。
因此,对于动态增加的控件,如果没有准确地重建ClientID,就不要指望Viewstate中的值正确。同理,那些changed事件、click事
件和其它自定义事件也没办法准确触发。
为什么“一般来说用户自定义的对控件属性的修改操作在此时完成”呢?
因为只有这个时候各个控件的值才准备好。如果你的界面需要根据客户端录入的值,或者任何当前正确的页面属性值来生成(而不是简单得在一片空白的时候就能生
成),只能在这个时刻之后才恰当。
原文地址 <url>http://hi.baidu.com/huaxiaoya369/blog/item/a13c3762b42bff6a0c33fa34.html</url>
分享到:
相关推荐
关,如果没有定义这个宏,系统调用 drivers/nand/nand.c 中的 nand_init();否则调用自己在 本文件中的 nand_init()函数,本例使用后者。fs2410.c代码如下: #if defined(CONFIG_CMD_NAND) typedef enum { NFCE_...
init()初始化PAL代码,调用openboot() 打开引导设备(通过读取Firmware环境),调用load()将核心代码加载到START_ADDR(见 “include/asm-alpha/system.h”),再将Firmware中的核心引导参数加载到ZERO_PAGE(0) ...
第三节母版页和内容页的事件先后顺序(Page_Load Page_Init)在内容页中访问母版页控件对象 嵌套母版页
Page 执行中将按照如下顺序激活事件:Page.PreInit---->Page.Init---->Page.InitComplite---->Page.PreLoad---->Page.Load---->Page.LoadComplete---->Page.PreRender----> Page.PreRenderComplete 如果页面从令一...
protected void Page_Load(object sender, EventArgs e) { } } 上述代码为Default.apx.cs页面代码。从上述代码可以看出,其格式与类库、编写类的格式相同,这也说明了.aspx页面允许使用面向对象的特性,如多态、...
无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等。“protected void Page_Load(object sender, EventArgs e)”这段代码相信没有人不熟悉的。细心一点一定会发现,非常多的事件方法都...
无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等。 “protected void Page_Load(object sender, EventArgs e)”这段代码相信没有人不熟悉的。细心一点一定会发现,非常多的事件方法都...
Analogy: PC load letter 232 The decalog of documentation 233 Summary 235 Chapter 10: Publishing Your Plugin 237 Internationalization and localization 237 Processing each message 238 Choosing a ...
InitiatorInfo The init directive in the ZUML page. LanguageDefinition A definition of a language, such as xul. NativeInfo Represents the compmonent infomation about the native components. NodeInfo ...
Multiple Caches Per Page [每页多个缓存] Cache Groups [缓存集合] Controlling Cacheability of Plugins' Output [控制插件输出的缓冲能力] 15. Advanced Features [高级特点] Objects [对象] Prefilters [预...
Multiple Caches Per Page [每页多个缓存] Cache Groups [缓存集合] Controlling Cacheability of Plugins' Output [控制插件输出的缓冲能力] 15. Advanced Features [高级特点] Objects [对象] Prefilters [预...
base.Init += new EventHandler(this.Page_Init); base.Load += new EventHandler(this.Page_Load); this.mr = new Mr(); this.sysSet = new iofficeservice.sysSet(); this.Res = new iOfficeData.Res(); ...
ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox...
What methods are fired during the page load? Init () When the page is instantiated, Load() - when the page is loaded into server memory,PreRender () - the brief moment before the page is displayed to ...
SugarLoader A lightweight API to add syntax sugar to Android Loader API Why SugarLoader ? Google's Loader API is great, as it provides a...init -> load -> display page, without having to consider fragmen
场景:在自定义控件、... protected void Page_Load(object sender, EventArgs e) { JavaScriptManager.JavaScriptManager.Include("~/JS/cs.js", "~/JS/cs.js", "~/JS/cs.js2", "~/JS/cs.js"); } }
InitializeComponent() End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ‘Put user code to initialize the page here txtSave....
PHP attempts to find and load this configuration from a number of locations. ; The following is a summary of its search order: ; 1. SAPI module specific location. ; 2. The PHPRC environment variable....
LSIP200233314 (DFCT) Pcilinkspeedset and adpdowngrade cmds are not working and Need to update Help page LSIP200232870 (DFCT) Add a Gen2 to Gen3 toggle function and a check for the PCI speed to ...
ExtAspNet v2.2.1 ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有JavaScript,没有... -在Page_Load中设置了哪些需要在AJAX中更新的Asp.net控件会在回发时保持状态,可以...