Author: mhabersack
Date: 2007-10-03 14:31:17 -0400 (Wed, 03 Oct 2007)
New Revision: 86825
Modified:
trunk/mcs/class/System.Web/System.Web.UI/ChangeLog
trunk/mcs/class/System.Web/System.Web.UI/Page.cs
Log:
2007-10-03 Marek Habersack <[EMAIL PROTECTED]>
* Page.cs: complete implementation of ValidationGroups. Fixes bug
#330423. Patch from Juraj Skripsky <[EMAIL PROTECTED]>, thanks!
Modified: trunk/mcs/class/System.Web/System.Web.UI/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI/ChangeLog 2007-10-03 17:40:44 UTC
(rev 86824)
+++ trunk/mcs/class/System.Web/System.Web.UI/ChangeLog 2007-10-03 18:31:17 UTC
(rev 86825)
@@ -1,3 +1,8 @@
+2007-10-03 Marek Habersack <[EMAIL PROTECTED]>
+
+ * Page.cs: complete implementation of ValidationGroups. Fixes bug
+ #330423. Patch from Juraj Skripsky <[EMAIL PROTECTED]>, thanks!
+
2007-10-02 Marek Habersack <[EMAIL PROTECTED]>
* SimpleWebHandlerParser.cs: fix the way types are loaded from
Modified: trunk/mcs/class/System.Web/System.Web.UI/Page.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI/Page.cs 2007-10-03 17:40:44 UTC
(rev 86824)
+++ trunk/mcs/class/System.Web/System.Web.UI/Page.cs 2007-10-03 18:31:17 UTC
(rev 86825)
@@ -154,7 +154,6 @@
bool isPostBack;
bool isCallback;
ArrayList requireStateControls;
- Hashtable _validatorsByGroup;
HtmlForm _form;
string _title;
@@ -2426,28 +2425,33 @@
}
public ValidatorCollection GetValidators (string validationGroup)
- {
- string valgr = validationGroup;
- if (valgr == null)
- valgr = String.Empty;
+ {
+ if (validationGroup == String.Empty)
+ validationGroup = null;
- if (_validatorsByGroup == null) _validatorsByGroup = new
Hashtable ();
- ValidatorCollection col = _validatorsByGroup [valgr] as
ValidatorCollection;
- if (col == null) {
- col = new ValidatorCollection ();
- _validatorsByGroup [valgr] = col;
- }
+ ValidatorCollection col = new ValidatorCollection ();
+ if (_validators == null)
+ return col;
+
+ foreach (IValidator v in _validators)
+ if (BelongsToGroup(v, validationGroup))
+ col.Add(v);
+
return col;
}
+ bool BelongsToGroup(IValidator v, string validationGroup) {
+ BaseValidator validator = v as BaseValidator;
+ if (validationGroup == null)
+ return validator == null || String.IsNullOrEmpty
(validator.ValidationGroup);
+ else
+ return validator != null && validator.ValidationGroup
== validationGroup;
+ }
+
public virtual void Validate (string validationGroup)
{
is_validated = true;
- if (validationGroup == null)
- ValidateCollection (_validatorsByGroup [String.Empty]
as ValidatorCollection);
- else if (_validatorsByGroup != null) {
- ValidateCollection (_validatorsByGroup
[validationGroup] as ValidatorCollection);
- }
+ ValidateCollection (GetValidators (validationGroup));
}
object SavePageControlState ()
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches