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