Author: igorz
Date: 2008-01-02 10:33:23 -0500 (Wed, 02 Jan 2008)
New Revision: 92110

Modified:
   trunk/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
Log:
implement GetRegisteredArrayDeclarations()

Modified: trunk/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
===================================================================
--- trunk/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs        
2008-01-02 15:29:12 UTC (rev 92109)
+++ trunk/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs        
2008-01-02 15:33:23 UTC (rev 92110)
@@ -103,7 +103,7 @@
                ScriptEntry _startupScriptBlocks;
                ScriptEntry _scriptIncludes;
                ScriptEntry _onSubmitStatements;
-               List<ArrayDeclaration> _arrayDeclarations;
+               List<RegisteredArrayDeclaration> _arrayDeclarations;
                Hashtable _hiddenFields;
                List<IScriptControl> _registeredScriptControls;
                Dictionary<IExtenderControl, Control> 
_registeredExtenderControls;
@@ -629,7 +629,7 @@
                }
 
                public ReadOnlyCollection<RegisteredArrayDeclaration> 
GetRegisteredArrayDeclarations () {
-                       throw new NotImplementedException ();
+                       return new 
ReadOnlyCollection<RegisteredArrayDeclaration> (_arrayDeclarations);
                }
 
                public ReadOnlyCollection<RegisteredScript> 
GetRegisteredClientScriptBlocks () {
@@ -727,23 +727,21 @@
                                up.Update ();
                }
 
-               public static void RegisterArrayDeclaration (Control control, 
string arrayName, string arrayValue) {
-                       RegisterArrayDeclaration (control.Page, arrayName, 
arrayValue);
+               public static void RegisterArrayDeclaration (Page page, string 
arrayName, string arrayValue) {
+                       RegisterArrayDeclaration ((Control) page, arrayName, 
arrayValue);
                }
 
-               public static void RegisterArrayDeclaration (Page page, string 
arrayName, string arrayValue) {
+               public static void RegisterArrayDeclaration (Control control, 
string arrayName, string arrayValue) {
+                       Page page = control.Page;
                        ScriptManager sm = GetCurrent (page);
-                       if (sm.IsInAsyncPostBack)
-                               sm.RegisterArrayDeclaration (arrayName, 
arrayValue);
-                       else
-                               page.ClientScript.RegisterArrayDeclaration 
(arrayName, arrayValue);
-               }
 
-               void RegisterArrayDeclaration (string arrayName, string 
arrayValue) {
-                       if (_arrayDeclarations == null)
-                               _arrayDeclarations = new List<ArrayDeclaration> 
();
+                       if (sm._arrayDeclarations == null)
+                               sm._arrayDeclarations = new 
List<RegisteredArrayDeclaration> ();
 
-                       _arrayDeclarations.Add (new ArrayDeclaration 
(arrayName, arrayValue));
+                       sm._arrayDeclarations.Add (new 
RegisteredArrayDeclaration (control, arrayName, arrayValue));
+
+                       if (!sm.IsInAsyncPostBack)
+                               page.ClientScript.RegisterArrayDeclaration 
(arrayName, arrayValue);
                }
 
                public void RegisterAsyncPostBackControl (Control control) {
@@ -1254,8 +1252,8 @@
                void WriteArrayDeclarations (HtmlTextWriter writer) {
                        if (_arrayDeclarations != null) {
                                for (int i = 0; i < _arrayDeclarations.Count; 
i++) {
-                                       ArrayDeclaration array = 
_arrayDeclarations [i];
-                                       WriteCallbackOutput (writer, 
arrayDeclaration, array.ArrayName, array.ArrayValue);
+                                       RegisteredArrayDeclaration array = 
_arrayDeclarations [i];
+                                       WriteCallbackOutput (writer, 
arrayDeclaration, array.Name, array.Value);
                                }
                        }
                }
@@ -1532,17 +1530,6 @@
                        OnSubmit
                }
 
-               sealed class ArrayDeclaration
-               {
-                       readonly public string ArrayName;
-                       readonly public string ArrayValue;
-
-                       public ArrayDeclaration (string arrayName, string 
arrayValue) {
-                               ArrayName = arrayName;
-                               ArrayValue = arrayValue;
-                       }
-               }
-
                sealed class CultureInfoSerializer : 
JavaScriptSerializer.LazyDictionary
                {
                        readonly CultureInfo _ci;

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to