Yes, your observations are correct. Because there is no ViewState, the TextChanged event always fires, unless the value is equal to the initial value.
The __EVENTVALIDATION field is used to track valid events. In previous versions of ASP.NET it was possible to construct a custom postback that triggered a control's Event even if the control wasn't visible or didn't have the used in the post back.
quote:ensure that each and every postback and callback event originates from the expected user interface elements, the page adds an extra layer of validation on events. The page basically matches the contents of the request with the information in the __EVENTVALIDATION field to verify that no extra input field has been added on the client and that value is selected on a list that was already known on the server. The page generates the event validation field during rendering-that is at the last possible moment when the information is available. Like the view state, the event validation field contains a hash value to prevent client-side tampering.
Now, with event validation, this is no longer possible. The ASP.NET run-time now keeps track of controls that can trigger a postback and their initial values.
Hope this helps,
Everyone is unique, except for me.
Author of Beginning ASP.NET 3.5 : in C# and VB
, ASP.NET 2.0 Instant Results
and Dreamweaver MX 2004
Want to be my colleague? Then check out this post