Daniel Powell
Daniel Powell

Reputation: 8293

asp.net load postback data and raise postback event viewstate interaction

I'm reading up to get a better idea of how viewstate works in asp.net webforms and have been reading this article.

One part that I don't quite understand is the Stage 5 - Raise postback event, it says that this stage does not make use of any viewstate information to raise the events (ie. TextChanged).

I thought that the viewstate would be sent back with the page on the postback and after the control tree had been populated the values from the viewstate would then be loaded in and then after that the control would interrogate the new form values comparing them against the current ones loaded from viewstate in order to tell which Changed() events it needs to raise.

If this event doesn't interact with viewstate how can it tell whether a value has changed or if it is still the same from the previous load?

Upvotes: 1

Views: 1848

Answers (2)

Scott Mitchell
Scott Mitchell

Reputation: 8759

Daniel, you are correct in your assumption - view state is used to determine whether a change-related event needs to be raised. That includes things like the TextChanged event on the TextBox and the SelectedIndexChanged event on the DropDownList, among others.

If you haven't read this article yet, I highly recommend it: Truly Understanding View State. It's an informative write up by Dave Reed.

Thanks!

Upvotes: 1

KevD
KevD

Reputation: 717

In the case of TextChanged events, it does look at the viewstate to determine if it gets raised or not - see the answer to question 6215046:


http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.ontextchanged.aspx

A TextBox control must persist some values between posts to the server for this event >> to work correctly. Be sure that view state is enabled for this control.

Try enabling ViewState for TextBox.

Upvotes: 0

Related Questions