From aead372b6c7ddce2fd8c9998421a7dbf6bcb14db Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Wed, 3 Jun 2015 00:51:24 +0200 Subject: [PATCH] Basic form validation. --- Scrummer/Code/Controls/CTextbox.cs | 17 ++++------- Scrummer/Code/Controls/IValidableControl.cs | 12 ++++++++ Scrummer/Code/Pages/FormUtils.cs | 32 +++++++++++++++++++++ Scrummer/Scrummer.csproj | 1 + 4 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 Scrummer/Code/Controls/IValidableControl.cs diff --git a/Scrummer/Code/Controls/CTextbox.cs b/Scrummer/Code/Controls/CTextbox.cs index ed65c93..76840e1 100644 --- a/Scrummer/Code/Controls/CTextbox.cs +++ b/Scrummer/Code/Controls/CTextbox.cs @@ -7,7 +7,7 @@ using System.Web.UI.WebControls; namespace Scrummer.Code.Controls { - public class CTextBox: TextBox + public class CTextBox : TextBox, IValidableControl { #region Declarations @@ -46,14 +46,9 @@ namespace Scrummer.Code.Controls public CTextBox() { - Init += CTextbox_Init; PreRender += CTextbox_PreRender; } - void CTextbox_Init(object sender, EventArgs e) - { - } - void CTextbox_PreRender(object sender, EventArgs e) { CssClass = CssClassBase; @@ -79,11 +74,6 @@ namespace Scrummer.Code.Controls } } - public override void RenderEndTag(HtmlTextWriter writer) - { - base.RenderEndTag(writer); - } - #endregion #region Public methods @@ -93,6 +83,11 @@ namespace Scrummer.Code.Controls return string.IsNullOrEmpty(Text); } + public bool IsValid() + { + return _allowEmpty || (string.IsNullOrEmpty(Text) == false); + } + #endregion } diff --git a/Scrummer/Code/Controls/IValidableControl.cs b/Scrummer/Code/Controls/IValidableControl.cs new file mode 100644 index 0000000..a5b87db --- /dev/null +++ b/Scrummer/Code/Controls/IValidableControl.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Scrummer.Code.Controls +{ + public interface IValidableControl + { + bool IsValid(); + } +} diff --git a/Scrummer/Code/Pages/FormUtils.cs b/Scrummer/Code/Pages/FormUtils.cs index cb8e97e..777d39c 100644 --- a/Scrummer/Code/Pages/FormUtils.cs +++ b/Scrummer/Code/Pages/FormUtils.cs @@ -35,5 +35,37 @@ namespace Scrummer.Code.Pages return pnlRow; } + public static bool Control_IsValid(Control control) + { + if (control is IValidableControl) + { + if (((IValidableControl)control).IsValid() == false) + { + return false; + } + } + return true; + } + + public static bool Controls_AreValid(ControlCollection controls) { + bool valid = true; + foreach (Control control in controls) + { + if (Control_IsValid(control)) + { + if (Controls_AreValid(control.Controls) == false) + { + valid = false; + break; + } + } + else + { + valid = false; + break; + } + } + return valid; + } } } \ No newline at end of file diff --git a/Scrummer/Scrummer.csproj b/Scrummer/Scrummer.csproj index fe4726b..ab1038a 100644 --- a/Scrummer/Scrummer.csproj +++ b/Scrummer/Scrummer.csproj @@ -71,6 +71,7 @@ +