implement GetRegisteredDisposeScripts()
authorIgor Zelmanovich <igorz@mono-cvs.ximian.com>
Thu, 3 Jan 2008 09:51:38 +0000 (09:51 -0000)
committerIgor Zelmanovich <igorz@mono-cvs.ximian.com>
Thu, 3 Jan 2008 09:51:38 +0000 (09:51 -0000)
svn path=/trunk/mcs/; revision=92162

mcs/class/System.Web.Extensions/System.Web.UI/RegisteredDisposeScript.cs
mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs

index 6ab58751466acebd71f1fa98ae223c2be58defa3..29126e93114ab51dc0fd5be61388d8c7247a0bc6 100644 (file)
@@ -34,11 +34,13 @@ namespace System.Web.UI
        public sealed class RegisteredDisposeScript\r
        {\r
                readonly Control _control;\r
+               readonly UpdatePanel _updatePanel;\r
                readonly string _script;\r
 \r
-               internal RegisteredDisposeScript (Control control, string script) {\r
+               internal RegisteredDisposeScript (Control control, string script, UpdatePanel updatePanel) {\r
                        _control = control;\r
                        _script = script;\r
+                       _updatePanel = updatePanel;\r
                }\r
 \r
                public Control Control {\r
@@ -48,5 +50,9 @@ namespace System.Web.UI
                public string Script {\r
                        get { return _script; }\r
                }\r
+\r
+               internal UpdatePanel UpdatePanel {\r
+                       get { return _updatePanel; }\r
+               }\r
        }\r
 }\r
index 3c41766df389af6a924ac9b0084025c9a84a7b42..b0acf2dbf7064983fdef4c7f93f4977eed6ac9e0 100644 (file)
@@ -117,7 +117,7 @@ namespace System.Web.UI
                string _controlIDToFocus;
                bool _allowCustomErrorsRedirect = true;
                string _asyncPostBackErrorMessage;
-               List<DisposeScriptEntry> _disposeScripts;
+               List<RegisteredDisposeScript> _disposeScripts;
                List<ScriptReferenceEntry> _scriptToRegister;
                bool _loadScriptsBeforeUI = true;
                AuthenticationServiceManager _authenticationService;
@@ -488,7 +488,7 @@ namespace System.Web.UI
                                        StringBuilder sb = new StringBuilder ();
                                        sb.AppendLine ();
                                        for (int i = 0; i < _disposeScripts.Count; i++) {
-                                               DisposeScriptEntry entry = _disposeScripts [i];
+                                               RegisteredDisposeScript entry = _disposeScripts [i];
                                                if (IsMultiForm)
                                                        sb.Append ("Sys.WebForms.PageRequestManager.getInstance($get(\"" + Page.Form.ClientID + "\"))._registerDisposeScript(\"");
                                                else
@@ -640,7 +640,9 @@ namespace System.Web.UI
                }
 
                public ReadOnlyCollection<RegisteredDisposeScript> GetRegisteredDisposeScripts () {
-                       throw new NotImplementedException ();
+                       if (_disposeScripts == null)
+                               _disposeScripts = new List<RegisteredDisposeScript> ();
+                       return new ReadOnlyCollection<RegisteredDisposeScript> (_disposeScripts);
                }
 
                public ReadOnlyCollection<RegisteredExpandoAttribute> GetRegisteredExpandoAttributes () {
@@ -893,8 +895,8 @@ namespace System.Web.UI
                                return;
 
                        if (_disposeScripts == null)
-                               _disposeScripts = new List<DisposeScriptEntry> ();
-                       _disposeScripts.Add (new DisposeScriptEntry (updatePanel, disposeScript));
+                               _disposeScripts = new List<RegisteredDisposeScript> ();
+                       _disposeScripts.Add (new RegisteredDisposeScript (control, disposeScript, updatePanel));
                }
 
                static UpdatePanel GetUpdatePanel (Control control) {
@@ -1248,7 +1250,7 @@ namespace System.Web.UI
 
                        if (_disposeScripts != null)
                                for (int i = 0; i < _disposeScripts.Count; i++) {
-                                       DisposeScriptEntry entry = _disposeScripts [i];
+                                       RegisteredDisposeScript entry = _disposeScripts [i];
                                        if ((_panelsToRefresh != null && _panelsToRefresh.IndexOf (entry.UpdatePanel) >= 0) || (_childUpdatePanels != null && _childUpdatePanels.IndexOf (entry.UpdatePanel) >= 0))
                                                WriteCallbackOutput (output, scriptDispose, entry.UpdatePanel.ClientID, entry.Script);
                                }
@@ -1607,20 +1609,6 @@ namespace System.Web.UI
                        }
                }
 
-               sealed class DisposeScriptEntry
-               {
-                       readonly UpdatePanel _updatePanel;
-                       readonly string _script;
-
-                       public UpdatePanel UpdatePanel { get { return _updatePanel; } }
-                       public string Script { get { return _script; } }
-
-                       public DisposeScriptEntry (UpdatePanel updatePanel, string script) {
-                               _updatePanel = updatePanel;
-                               _script = script;
-                       }
-               }
-
                internal void RegisterProxy (ScriptManagerProxy scriptManagerProxy) {
                        if (_proxies == null)
                                _proxies = new List<ScriptManagerProxy> ();