Author: igorz
Date: 2008-01-03 04:22:59 -0500 (Thu, 03 Jan 2008)
New Revision: 92160
Modified:
trunk/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
Log:
implement GetRegisteredHiddenFields
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-03 08:58:29 UTC (rev 92159)
+++ trunk/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
2008-01-03 09:22:59 UTC (rev 92160)
@@ -105,7 +105,7 @@
ScriptEntry _onSubmitStatements;
List<RegisteredArrayDeclaration> _arrayDeclarations;
List<RegisteredExpandoAttribute> _expandoAttributes;
- Hashtable _hiddenFields;
+ List<RegisteredHiddenField> _hiddenFields;
List<IScriptControl> _registeredScriptControls;
Dictionary<IExtenderControl, Control>
_registeredExtenderControls;
bool? _supportsPartialRendering;
@@ -650,7 +650,9 @@
}
public ReadOnlyCollection<RegisteredHiddenField>
GetRegisteredHiddenFields () {
- throw new NotImplementedException ();
+ if (_hiddenFields == null)
+ _hiddenFields = new List<RegisteredHiddenField>
();
+ return new ReadOnlyCollection<RegisteredHiddenField>
(_hiddenFields);
}
public ReadOnlyCollection<RegisteredScript>
GetRegisteredOnSubmitStatements () {
@@ -919,24 +921,21 @@
page.ClientScript.RegisterExpandoAttribute
(controlId, attributeName, attributeValue, encode);
}
- public static void RegisterHiddenField (Control control, string
hiddenFieldName, string hiddenFieldInitialValue) {
- RegisterHiddenField (control.Page, hiddenFieldName,
hiddenFieldInitialValue);
+ public static void RegisterHiddenField (Page page, string
hiddenFieldName, string hiddenFieldInitialValue) {
+ RegisterHiddenField ((Control) page, hiddenFieldName,
hiddenFieldInitialValue);
}
- public static void RegisterHiddenField (Page page, string
hiddenFieldName, string hiddenFieldInitialValue) {
+ public static void RegisterHiddenField (Control control, string
hiddenFieldName, string hiddenFieldInitialValue) {
+ Page page = control.Page;
ScriptManager sm = GetCurrent (page);
- if (sm.IsInAsyncPostBack)
- sm.RegisterHiddenField (hiddenFieldName,
hiddenFieldInitialValue);
- else
- page.ClientScript.RegisterHiddenField
(hiddenFieldName, hiddenFieldInitialValue);
- }
- void RegisterHiddenField (string hiddenFieldName, string
hiddenFieldInitialValue) {
- if (_hiddenFields == null)
- _hiddenFields = new Hashtable ();
+ if (sm._hiddenFields == null)
+ sm._hiddenFields = new
List<RegisteredHiddenField> ();
- if (!_hiddenFields.ContainsKey (hiddenFieldName))
- _hiddenFields.Add (hiddenFieldName,
hiddenFieldInitialValue);
+ sm._hiddenFields.Add (new RegisteredHiddenField
(control, hiddenFieldName, hiddenFieldInitialValue));
+
+ if (!sm.IsInAsyncPostBack)
+ page.ClientScript.RegisterHiddenField
(hiddenFieldName, hiddenFieldInitialValue);
}
public static void RegisterOnSubmitStatement (Control control,
Type type, string key, string script) {
@@ -1308,9 +1307,15 @@
void WriteHiddenFields (HtmlTextWriter output) {
if (_hiddenFields == null)
return;
- foreach (string key in _hiddenFields.Keys) {
- string value = _hiddenFields [key] as string;
- WriteCallbackOutput (output, hiddenField, key,
value);
+ Hashtable registeredFields = new Hashtable ();
+ for (int i = 0; i < _hiddenFields.Count; i++) {
+ RegisteredHiddenField field = _hiddenFields [i];
+ if (registeredFields.ContainsKey (field.Name))
+ continue;
+ if (Page == field.Control || HasBeenRendered
(field.Control)) {
+ registeredFields.Add (field.Name,
field);
+ WriteCallbackOutput (output,
hiddenField, field.Name, field.InitialValue);
+ }
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches