R – When are controls initialized with their design time values

asp.netmaster-pageswebforms

a) Am I right in assuming that only after controls on Master page are merged into the control tree for the Page, can controls ( both those in Master page and in a content Page ) be initialized with their declarative values ( values set during design time )?

b) If my above assumption is correct, then these controls cannot be initialized with their design-time values during Page.PreInit, since during Page.PreInit event stage we’re still able to dynamically set a Master page?! So if that is the case, when are controls initialized with their declarative values? During Init event or…?

thanx

Best Answer

Pages are compiled into .Net classes, so the parsing of the markup actually happens outside of the page lifecycle. By the time a request reaches your Page, the page class has been compiled from the combination of the markup and codebehind.

This is easily verified by just putting a Page_PreInit handler and looking at the properties of a control on the page. You'll see that they are set.

The MasterPage/Page relationship is just a function of how the HTML will get rendered, and the naming containers that everything lives in.

When the actual Page compilation happens is partially a function of how you've set up your project, and partially a function of ASP.Net's monitoring of the files in the application.