开发者

ASP.net PreInit() Vs Init()

开发者 https://www.devze.com 2023-02-04 19:47 出处:网络
From local forum i understood t开发者_StackOverflow社区hat PreInit can be used to handle the following

From local forum i understood t开发者_StackOverflow社区hat PreInit can be used to handle the following

PreInit()
>Master pages can be called dynamically
>Themes can be set dynamically
>Programatically add controls to controls collection

and i read Init() is for

Init()

In this event, we can read the controls properties (set at design time). We cannot read control values changed by the user because that changed value will get loaded after LoadPostData() event fires.

Question

I am not getting the point "We cannot read control values changed by the user".Where do users change the value of control?.Example would help me to understand the point.


PreInit: Raised after the start stage is complete and before the initialization stage begins. Use this event for the following:

  • Check the IsPostBack property to determine whether this is the first time the page is being processed. The IsCallback and IsCrossPagePostBack properties have also been set at this time.
  • Create or re-create dynamic controls.
  • Set a master page dynamically.
  • Set the Theme property dynamically.
  • Read or set profile property values.

Init: Raised after all controls have been initialized and any skin settings have been applied. The Init event of individual controls occurs before the Init event of the page.


Lets say you have a textbox, a dropdownlist, some check boxes... the user enters data into them and you want to read their values by writing

var text = myTextBox.Text;
var selectedItem = ddl.SelectedItem;

this you cannot do before after the LoadPostData method has been called.

This page gives a pretty good summary of the different events and what they should be used for http://msdn.microsoft.com/en-us/library/ms178472.aspx. It says that PreInit should be used for ie. creating dynamic controls and Init for setting properties on them.


On the first post, you show several controls, say a textbox and a submit button.

The user types code into the textbox and click submit.

The user has changed the value of the control when he typed it in the textbox and it then got posted back to the page.

You will not be able to access the value typed in until LoadPostData has processed.

This is the pretty much the same with all other server side controls.


PreInit: Initialize master page , user controls , dynamic controls

Init : set the properties of controls


The value is changed through PostBack. The changes in the form data is determined by the current ViewState (which isn't loaded until later) vs the form data. Seeing as that isn't loaded until later, then you can't read any control values at that point.

0

精彩评论

暂无评论...
验证码 换一张
取 消