+2010-02-02 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptManager.cs: adjusted script rendering to match .NET
+ formatting.
+
+ * ScriptComponentDescriptor.cs: GetScript adds ID value (if
+ present) to the set of properties.
+ GetScript rewritten to use StringBuilder.
+
+ * ScriptBehaviorDescriptor.cs: GetScript adds Name, if present and
+ set by the user, to the descriptor's set of properties. The name
+ must be rendered to the client.
+
+2009-09-28 Marek Habersack <mhabersack@novell.com>
+
+ * UpdatePanel.cs: RenderChildren stores the alternative writer in
+ a private property, for the benefit of nested child panels. Fixes
+ bug #542441
+
+ * ScriptManager.cs: don't render invisible panel IDs during async
+ request. Fixes bug #542533
+
+2009-05-26 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptReferenceBase.cs: implemented (3.5 SP1)
+
+ * ScriptReference.cs: now inherits from the ScriptReferenceBase
+ class. Implemented all the required methods, removed some
+ properties which now live in the base class.
+
+ * ScriptManager.cs: code refactoring - moved parts of script
+ registration code to ScriptReference
+
+2009-04-23 Marek Habersack <mhabersack@novell.com>
+
+ * AsyncPostBackTrigger.cs: HasTriggered () must look up the
+ UniqueID of the control specified in the ControlID property or
+ otherwise it may miss certain triggers.
+
+2009-04-11 Marek Habersack <mhabersack@novell.com>
+
+ * UpdatePanel.cs: implemented SingleChildControlCollection to be
+ used in CreateControlCollection ().
+ RequiresUpdate not only checks the update mode and explicit update
+ requests, but also looks if any triggers fired.
+ Initialize () initializes triggers only if partial rendering is
+ supported by the ScriptManager.
+ IsInPartialRendering property no longer returns the value of
+ ScriptManager.IsInPartialRendering. Instead, it relies on the
+ value of instance field which can be set using new internal
+ SetInPartialRendering () method (called from
+ ScriptManager.RenderPageCallback ())
+ Simplified the logic in RenderChildren ().
+
+ * ScriptManager.cs: no need to register panels for refresh in
+ OnPreRenderComplete, this is now done in RenderPageCallback.
+ Modified HasBeenRendered () so that it doesn't query whether the
+ panel has been explicitly updated by the user, but checks whether
+ panel is in the list of panels to refresh.
+ RaisePostDataChangedEvent () doesn't update the panel whose id is
+ named in the POST request for refresh. This is handled in
+ RenderPageCallback.
+ Reverted the changes to WriteCallbackPanel and RenderFormCallback
+ committed in r129774.
+ RenderPageCallback now correctly detects panels to be refreshed
+ (and thus included in the async response).
+
+ * AsyncPostBackTrigger.cs, PostBackTrigger.cs: implemented
+ HasTriggered ().
+
+2009-04-08 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptComponentDescriptor.cs: properties/events/references must
+ be serialized in alphabetical order. This matches what .NET
+ does. Some 3rd party controls depend upon this fact.
+
+2009-04-07 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptComponentDescriptor.cs: new values replace old in
+ AddEntry.
+
+2009-03-19 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptManager.cs: WriteCallbackPanel is called from
+ UpdatePanel.RenderChildren and should not output anything for
+ panels registered as the ones to refresh. If such a panel calls
+ this method, its output is stored in a dictionary to be used later
+ in RenderFormCallback.
+ RenderFormCallback first renders all the form controls. In that
+ process UpdatePanel instances, if any, may call
+ WriteCallbackPanel. After that, if there are panels registered for
+ refresh, another loop over the list is made this time checking
+ whether any panels left their output in WriteCallbackPanel. If a
+ panel hasn't done it it is rendered. And last, another check is
+ done to see if the loop described above caused any panels to leave
+ output in WriteCallbackPanel. If yes, the output is written to the
+ text writer.
+
+2009-01-26 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptManager.cs: before registering script service reference
+ check if the service type is decorated with the [ScriptService]
+ custom attribute. Only such service types can be called from
+ client JavaScript.
+
+2008-10-02 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptManager.cs: reverting revision 114552 since the real bug
+ was somewhere else. The correct fix is to make sure UpdatePanels
+ which output something _or_ have been named in the POST request as
+ requiring a refresh are marked as such. Only in that situation
+ HasBeenRendered returns true (as it should for those panels)
+ Cosmetical output change - the hidden fields are output after the
+ update panels contents is sent in an async request. It makes the
+ async response look similar to the MS.NET's one but, more
+ importantly, makes debugging easier.
+
+2008-09-23 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptManager.cs: CultureInfoSerializer no longer derives from
+ the obsolete LazyDictionary.
+
+2008-09-01 Marek Habersack <mhabersack@novell.com>
+
+ * UpdatePanel.cs: if the writer passed to RenderChildren is not
+ derived from ScriptManager.AlternativeHtmlTextWriter, check
+ whether its InnerWriter derives from that type and, if yes, use
+ it from that point onwards.
+
+2008-08-13 Marek Habersack <mhabersack@novell.com>
+
+ * ScriptManager.cs: always request the webform.js script to be
+ present. It may happen that a control during a dynamic update will
+ need to call one of the WebForm_* functions and the call will fail
+ as the script will be absent.
+ If debugging is enabled, send the full exception backtrace in
+ WriteCallbackException - helps debugging AJAX errors.
+