Author: igorz
Date: 2008-01-02 11:46:51 -0500 (Wed, 02 Jan 2008)
New Revision: 92114
Modified:
trunk/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
Log:
implement GetRegisteredExpandoAttributes()
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 16:36:36 UTC (rev 92113)
+++ trunk/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
2008-01-02 16:46:51 UTC (rev 92114)
@@ -104,6 +104,7 @@
ScriptEntry _scriptIncludes;
ScriptEntry _onSubmitStatements;
List<RegisteredArrayDeclaration> _arrayDeclarations;
+ List<RegisteredExpandoAttribute> _expandoAttributes;
Hashtable _hiddenFields;
List<IScriptControl> _registeredScriptControls;
Dictionary<IExtenderControl, Control>
_registeredExtenderControls;
@@ -629,7 +630,7 @@
}
public ReadOnlyCollection<RegisteredArrayDeclaration>
GetRegisteredArrayDeclarations () {
- return new
ReadOnlyCollection<RegisteredArrayDeclaration> (_arrayDeclarations);
+ return new
ReadOnlyCollection<RegisteredArrayDeclaration> (_arrayDeclarations ?? new
List<RegisteredArrayDeclaration> ());
}
public ReadOnlyCollection<RegisteredScript>
GetRegisteredClientScriptBlocks () {
@@ -641,7 +642,7 @@
}
public ReadOnlyCollection<RegisteredExpandoAttribute>
GetRegisteredExpandoAttributes () {
- throw new NotImplementedException ();
+ return new
ReadOnlyCollection<RegisteredExpandoAttribute> (_expandoAttributes ?? new
List<RegisteredExpandoAttribute> ());
}
public ReadOnlyCollection<RegisteredHiddenField>
GetRegisteredHiddenFields () {
@@ -904,16 +905,16 @@
public static void RegisterExpandoAttribute (Control control,
string controlId, string attributeName, string attributeValue, bool encode) {
Page page = control.Page;
ScriptManager sm = GetCurrent (page);
- if (sm.IsInAsyncPostBack)
- sm.RegisterExpandoAttribute (controlId,
attributeName, attributeValue, encode);
- else
+
+ if (sm._expandoAttributes == null)
+ sm._expandoAttributes = new
List<RegisteredExpandoAttribute> ();
+
+ sm._expandoAttributes.Add (new
RegisteredExpandoAttribute (control, controlId, attributeName, attributeValue,
encode));
+
+ if (!sm.IsInAsyncPostBack)
page.ClientScript.RegisterExpandoAttribute
(controlId, attributeName, attributeValue, encode);
}
- private void RegisterExpandoAttribute (string controlId, string
attributeName, string attributeValue, bool encode) {
- // seems MS do nothing.
- }
-
public static void RegisterHiddenField (Control control, string
hiddenFieldName, string hiddenFieldInitialValue) {
RegisterHiddenField (control.Page, hiddenFieldName,
hiddenFieldInitialValue);
}
@@ -1232,6 +1233,7 @@
}
WriteArrayDeclarations (output);
+ WriteExpandoAttributes (output);
WriteScriptBlocks (output, _clientScriptBlocks);
WriteScriptBlocks (output, _scriptIncludes);
WriteScriptBlocks (output, _startupScriptBlocks);
@@ -1249,11 +1251,22 @@
}
}
+ private void WriteExpandoAttributes (HtmlTextWriter writer) {
+ if (_expandoAttributes != null) {
+ for (int i = 0; i < _expandoAttributes.Count;
i++) {
+ RegisteredExpandoAttribute attr =
_expandoAttributes [i];
+ if (HasBeenRendered (attr.Control))
+ WriteCallbackOutput (writer,
expando, "document.getElementById('Label2')['" + attr.Name + "']", "\"" +
attr.Value + "\"");
+ }
+ }
+ }
+
void WriteArrayDeclarations (HtmlTextWriter writer) {
if (_arrayDeclarations != null) {
for (int i = 0; i < _arrayDeclarations.Count;
i++) {
RegisteredArrayDeclaration array =
_arrayDeclarations [i];
- WriteCallbackOutput (writer,
arrayDeclaration, array.Name, array.Value);
+ if (Page == array.Control ||
HasBeenRendered (array.Control))
+ WriteCallbackOutput (writer,
arrayDeclaration, array.Name, array.Value);
}
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches