Documentation for this section has not yet been entered.
When data managed by a control has changed, the control is considered "dirty." A control should return true if the custom data that it manages through the System.Web.UI.WebControls.WebParts.IPersonalizable interface has changed. If a control returns true from this property, the control's IPersonalizable.Save(PersonalizationDictionary) interface method implementation is called during property value extraction.
This property is checked automatically by the personalization infrastructure during the latter phases of processing a POST request. However, for GET requests, the value returned from the IPersonalizable.IsDirty property is not checked. Some other event has to have caused the control to be considered "dirty" for any control state--not just data managed by System.Web.UI.WebControls.WebParts.IPersonalizable--to be saved. If a control can mark itself as "dirty" during a GET request, or if the personalization infrastructure under some very specific boundary conditions considers a control "dirty" during a GET request, then IPersonalizable.Save(PersonalizationDictionary) will always be called.
A control can reference its associated System.Web.UI.WebControls.WebParts.WebPartManager control and check the WebPartPersonalization.Scope property to determine the current scope. The "dirty" state of a control's custom data should be appropriate for the current scope.