Author: igorz
Date: 2007-04-05 06:54:30 -0400 (Thu, 05 Apr 2007)
New Revision: 75422

Modified:
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/BaseDataBoundControl.cs
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/GridView.cs
Log:
2007-04-05 Igor Zelmanovich <[EMAIL PROTECTED]>

        * GridView.cs:
        * BaseDataBoundControl.cs:
        Break recursion when the property is set from within the OnSelect 
handler 
        in user's code. fixes bug #81175.       


Modified: 
trunk/mcs/class/System.Web/System.Web.UI.WebControls/BaseDataBoundControl.cs
===================================================================
--- 
trunk/mcs/class/System.Web/System.Web.UI.WebControls/BaseDataBoundControl.cs    
    2007-04-05 10:51:06 UTC (rev 75421)
+++ 
trunk/mcs/class/System.Web/System.Web.UI.WebControls/BaseDataBoundControl.cs    
    2007-04-05 10:54:30 UTC (rev 75422)
@@ -107,21 +107,10 @@
                                // to bind to, the DataBind method is called
                                // immediately. In this case, the
                                // RequiresDataBinding property is _not_ 
actually
-                               // set to true.
-                               //
-                               // LAMESPEC, the docs quoted above mention that
-                               // DataBind is called in the described
-                               // case. This is wrong since that way we don't
-                               // break recursion when the property is set from
-                               // within the OnSelect handler in user's
-                               // code. EnsureDataBound makes sure that no
-                               // recursive binding is performed. Also the
-                               // property DOES get set in this case (according
-                               // to tests)
-                               if (value && preRendered && 
IsBoundUsingDataSourceID && Page != null && !Page.IsCallback) {
-                                       requiresDataBinding = true;
-                                       EnsureDataBound ();
-                               } else
+                               // set to true. 
+                               if (value && preRendered && 
IsBoundUsingDataSourceID && Page != null && !Page.IsCallback)
+                                       DataBind ();
+                               else
                                        requiresDataBinding = value;
                        }
                }

Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2007-04-05 10:51:06 UTC (rev 75421)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2007-04-05 10:54:30 UTC (rev 75422)
@@ -1,3 +1,10 @@
+2007-04-05 Igor Zelmanovich <[EMAIL PROTECTED]>
+
+       * GridView.cs:
+       * BaseDataBoundControl.cs:
+       Break recursion when the property is set from within the OnSelect 
handler 
+       in user's code. fixes bug #81175.       
+
 2007-04-05  Marek Habersack  <[EMAIL PROTECTED]>
 
        * SiteMapDataSource.cs: fix GetStartNode for situations when the

Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/GridView.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/GridView.cs    
2007-04-05 10:51:06 UTC (rev 75421)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/GridView.cs    
2007-04-05 10:54:30 UTC (rev 75422)
@@ -343,6 +343,8 @@
                                return false;
                        }
                        set {
+                               if (value == AllowPaging)
+                                       return;
                                ViewState ["AllowPaging"] = value;
                                RequireBinding ();
                        }
@@ -357,6 +359,8 @@
                                return false;
                        }
                        set {
+                               if (value == AllowSorting)
+                                       return;
                                ViewState ["AllowSorting"] = value;
                                RequireBinding ();
                        }
@@ -386,6 +390,8 @@
                                return false;
                        }
                        set {
+                               if (value == AutoGenerateEditButton)
+                                       return;
                                ViewState ["AutoGenerateEditButton"] = value;
                                RequireBinding ();
                        }
@@ -400,6 +406,8 @@
                                return false;
                        }
                        set {
+                               if (value == AutoGenerateDeleteButton)
+                                       return;
                                ViewState ["AutoGenerateDeleteButton"] = value;
                                RequireBinding ();
                        }
@@ -414,6 +422,8 @@
                                return false;
                        }
                        set {
+                               if (value == AutoGenerateSelectButton)
+                                       return;
                                ViewState ["AutoGenerateSelectButton"] = value;
                                RequireBinding ();
                        }
@@ -428,6 +438,8 @@
                                return true;
                        }
                        set {
+                               if (value == AutoGenerateColumns)
+                                       return;
                                ViewState ["AutoGenerateColumns"] = value;
                                RequireBinding ();
                        }
@@ -468,7 +480,6 @@
                        }
                        set {
                                ViewState ["Caption"] = value;
-                               RequireBinding ();
                        }
                }
                
@@ -483,7 +494,6 @@
                        }
                        set {
                                ViewState ["CaptionAlign"] = value;
-                               RequireBinding ();
                        }
                }
 
@@ -643,6 +653,8 @@
                                return string.Empty;
                        }
                        set {
+                               if (value == EmptyDataText)
+                                       return;
                                ViewState ["EmptyDataText"] = value;
                                RequireBinding ();
                        }
@@ -657,6 +669,8 @@
                                return false;
                        }
                        set {
+                               if (value == EnableSortingAndPagingCallbacks)
+                                       return;
                                ViewState ["EnableSortingAndPagingCallbacks"] = 
value;
                                RequireBinding ();
                        }
@@ -799,6 +813,8 @@
                                return 10;
                        }
                        set {
+                               if (value == PageSize)
+                                       return;
                                ViewState ["PageSize"] = value;
                                RequireBinding ();
                        }
@@ -855,6 +871,8 @@
                                return string.Empty;
                        }
                        set {
+                               if (value == RowHeaderColumn)
+                                       return;
                                ViewState ["RowHeaderColumn"] = value;
                                RequireBinding ();
                        }
@@ -964,6 +982,8 @@
                                return false;
                        }
                        set {
+                               if (value == ShowFooter)
+                                       return;
                                ViewState ["ShowFooter"] = value;
                                RequireBinding ();
                        }
@@ -978,6 +998,8 @@
                                return true;
                        }
                        set {
+                               if (value == ShowHeader)
+                                       return;
                                ViewState ["ShowHeader"] = value;
                                RequireBinding ();
                        }
@@ -1031,6 +1053,8 @@
                                return true;
                        }
                        set {
+                               if (value == UseAccessibleHeader)
+                                       return;
                                ViewState ["UseAccessibleHeader"] = value;
                                RequireBinding ();
                        }

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

Reply via email to