gpt4 book ai didi

asp.net - 不同执行顺序的目的: Init() and Load()

转载 作者:行者123 更新时间:2023-12-02 02:48:02 26 4
gpt4 key购买 nike

在最近的一次采访中,有人提出了以下问题。

• A Master page which contains 
• An ASPX web form page which contains
• A Web User Control inside the page which contains
• A button to fire some code in a button_click event

Init 事件将触发(最内层到最外层)

aspx.page Begin Init
–> Inside user control Page_Init
–> Inside master page Page_Init
–> Inside lifecycle page Page_Init
aspx.page End Init

并且加载事件将会触发

aspx.page Begin Load
–> Inside lifecycle page Page_Load
–> Inside master page Page_Load
–> Inside user control Page_Load
aspx.page End Load

为什么ASP.NET框架在Load()Init()中支持不同的执行顺序。这是面试时问的问题。我不知道什么面试官正在等我。

我请求你的帮助。

最佳答案

我建议阅读 ASP.NET page life cycle .

两者的目的不同,因此执行顺序也不同。

初始化:

During page initialization, controls on the page are available and each control's UniqueID property is set. A master page and themes are also applied to the page if applicable. If the current request is a postback, the postback data has not yet been loaded and control property values have not been restored to the values from view state.

负载:

During load, if the current request is a postback, control properties are loaded with information recovered from view state and control state.

此外,您还需要了解relationship母版页和内容页之间(母版页实际上包含在内容页中,而不是相反)和 complete life cycle of both .

<小时/>

因此,在初始化期间,需要首先初始化用户控件,以便它们可供其容器使用,然后是母版页,以便其内容可供内容页使用,然后是页面本身,从而完成控件层次结构初始化。

在加载期间,会发生相反的情况,因为现在所有回发数据都已设置并且所有控件都已准备就绪并且可以触发不同的事件。顶部容器首先加载内容页(因为它可以更改母版页和用户控件),然后加载母版页,最后加载叶控件。

关于asp.net - 不同执行顺序的目的: Init() and Load(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com