Author: lluis
Date: 2005-04-07 12:00:05 -0400 (Thu, 07 Apr 2005)
New Revision: 42645

Modified:
   trunk/mcs/class/System.Web/System.Web.UI/ChangeLog
   trunk/mcs/class/System.Web/System.Web.UI/Page.cs
   trunk/mcs/class/System.Web/System.Web.UI/StateManagedCollection.cs
   trunk/mcs/class/System.Web/System.Web.UI/TemplateControl.cs
Log:
2005-04-07  Lluis Sanchez Gual <[EMAIL PROTECTED]>

        * TemplateControl.cs:
        * Page.cs: Moved Eval and XPath from Page
        to TemplateControl.
        * StateManagedCollection.cs: Avoid saving null state.



Modified: trunk/mcs/class/System.Web/System.Web.UI/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI/ChangeLog  2005-04-07 15:51:33 UTC 
(rev 42644)
+++ trunk/mcs/class/System.Web/System.Web.UI/ChangeLog  2005-04-07 16:00:05 UTC 
(rev 42645)
@@ -1,3 +1,10 @@
+2005-04-07  Lluis Sanchez Gual <[EMAIL PROTECTED]>
+
+       * TemplateControl.cs:
+       * Page.cs: Moved Eval and XPath from Page
+       to TemplateControl.
+       * StateManagedCollection.cs: Avoid saving null state.
+
 2005-04-01  Lluis Sanchez Gual <[EMAIL PROTECTED]>
 
        * DataSourceView.cs: Rethrow exceptions not handled by operation

Modified: trunk/mcs/class/System.Web/System.Web.UI/Page.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI/Page.cs    2005-04-07 15:51:33 UTC 
(rev 42644)
+++ trunk/mcs/class/System.Web/System.Web.UI/Page.cs    2005-04-07 16:00:05 UTC 
(rev 42645)
@@ -1277,58 +1277,6 @@
                _form = form;
        }
        
-       Stack dataItemCtx;
-       
-       internal void PushDataItemContext (object o)
-       {
-               if (dataItemCtx == null)
-                       dataItemCtx = new Stack ();
-               
-               dataItemCtx.Push (o);
-       }
-       
-       internal void PopDataItemContext ()
-       {
-               if (dataItemCtx == null)
-                       throw new InvalidOperationException ();
-               
-               dataItemCtx.Pop ();
-       }
-       
-       internal object CurrentDataItem {
-               get {
-                       if (dataItemCtx == null)
-                               throw new InvalidOperationException ("No data 
item");
-                       
-                       return dataItemCtx.Peek ();
-               }
-       }
-       
-       protected object Eval (string expression)
-       {
-               return DataBinder.Eval (CurrentDataItem, expression);
-       }
-       
-       protected object Eval (string expression, string format)
-       {
-               return DataBinder.Eval (CurrentDataItem, expression, format);
-       }
-       
-       protected object XPath (string xpathexpression)
-       {
-               return XPathBinder.Eval (CurrentDataItem, xpathexpression);
-       }
-       
-       protected object XPath (string xpathexpression, string format)
-       {
-               return XPathBinder.Eval (CurrentDataItem, xpathexpression, 
format);
-       }
-       
-       protected IEnumerable XPathSelect (string xpathexpression)
-       {
-               return XPathBinder.Select (CurrentDataItem, xpathexpression);
-       }
-       
     [BrowsableAttribute (false)]
     [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
        public Page PreviousPage {

Modified: trunk/mcs/class/System.Web/System.Web.UI/StateManagedCollection.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI/StateManagedCollection.cs  
2005-04-07 15:51:33 UTC (rev 42644)
+++ trunk/mcs/class/System.Web/System.Web.UI/StateManagedCollection.cs  
2005-04-07 16:00:05 UTC (rev 42645)
@@ -78,6 +78,8 @@
                #region IStateManager
                void IStateManager.LoadViewState (object savedState)
                {
+                       if (savedState == null) return;
+
                        int pos = -1;
                        foreach (Pair p in (ArrayList)savedState) {
                                pos ++;
@@ -108,6 +110,7 @@
                {
                        ArrayList saved = new ArrayList ();
                        Type [] knownTypes = GetKnownTypes ();
+                       bool allNull = true;
                        
                        foreach (IStateManager itm in items) {
                                object state = itm.SaveViewState ();
@@ -130,9 +133,11 @@
                                        p.Second = t;
                                
                                saved.Add (p);
+                               allNull = false;
                        }
                        
-                       return saved;
+                       if (allNull) return null;
+                       else return saved;
                }
                
                void IStateManager.TrackViewState ()

Modified: trunk/mcs/class/System.Web/System.Web.UI/TemplateControl.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI/TemplateControl.cs 2005-04-07 
15:51:33 UTC (rev 42644)
+++ trunk/mcs/class/System.Web/System.Web.UI/TemplateControl.cs 2005-04-07 
16:00:05 UTC (rev 42645)
@@ -260,5 +260,60 @@
                        }
                }
 
+#if NET_2_0
+
+       Stack dataItemCtx;
+       
+       internal void PushDataItemContext (object o)
+       {
+               if (dataItemCtx == null)
+                       dataItemCtx = new Stack ();
+               
+               dataItemCtx.Push (o);
        }
+       
+       internal void PopDataItemContext ()
+       {
+               if (dataItemCtx == null)
+                       throw new InvalidOperationException ();
+               
+               dataItemCtx.Pop ();
+       }
+       
+       internal object CurrentDataItem {
+               get {
+                       if (dataItemCtx == null)
+                               throw new InvalidOperationException ("No data 
item");
+                       
+                       return dataItemCtx.Peek ();
+               }
+       }
+       
+       protected object Eval (string expression)
+       {
+               return DataBinder.Eval (CurrentDataItem, expression);
+       }
+       
+       protected object Eval (string expression, string format)
+       {
+               return DataBinder.Eval (CurrentDataItem, expression, format);
+       }
+       
+       protected object XPath (string xpathexpression)
+       {
+               return XPathBinder.Eval (CurrentDataItem, xpathexpression);
+       }
+       
+       protected object XPath (string xpathexpression, string format)
+       {
+               return XPathBinder.Eval (CurrentDataItem, xpathexpression, 
format);
+       }
+       
+       protected IEnumerable XPathSelect (string xpathexpression)
+       {
+               return XPathBinder.Select (CurrentDataItem, xpathexpression);
+       }
+#endif
+
+       }
 }

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

Reply via email to