2 // System.Web.UI.WebControls.CustomValidator.cs
5 // Gaurav Vaish (gvaish@iitk.ac.in)
6 // Andreas Nahr (ClassDevelopment@A-SoftTech.com)
8 // (C) Gaurav Vaish (2002)
9 // (C) 2003 Andreas Nahr
14 using System.Web.UI;
\r
15 using System.ComponentModel;
\r
17 namespace System.Web.UI.WebControls
\r
19 [DefaultEvent("ServerValidate")]
\r
20 [ToolboxData("<{0}:CustomValidator runat=\"server\""
\r
21 + "ErrorMessage=\"CustomValidator\">"
\r
22 + "</{0}:CustomValidator>")]
\r
23 public class CustomValidator : BaseValidator
\r
25 private static readonly object ServerValidateEvent = new object();
\r
27 public CustomValidator()
\r
31 [DefaultValue (""), WebCategory ("Behavior")]
32 [WebSysDescription ("A client script that performs the validation.")]
\r
33 public string ClientValidationFunction
\r
37 object o = ViewState["ClientValidationFunction"];
\r
42 return String.Empty;
\r
46 ViewState["ClientValidationFunction"] = value;
\r
50 [WebSysDescription ("Raised for validation on the server.")]
\r
51 public event ServerValidateEventHandler ServerValidate
\r
55 Events.AddHandler(ServerValidateEvent, value);
\r
59 Events.RemoveHandler(ServerValidateEvent, value);
\r
63 protected override void AddAttributesToRender(HtmlTextWriter writer)
\r
65 base.AddAttributesToRender(writer);
\r
68 writer.AddAttribute("evaluationfunction", "CustomValidatorEvaluateIsValid");
\r
69 if(ClientValidationFunction.Length > 0)
\r
71 writer.AddAttribute("clientvalidationfunction", ClientValidationFunction);
\r
76 protected override bool ControlPropertiesValid()
\r
78 if(ControlToValidate.Length > 0)
\r
80 CheckControlValidationProperty(ControlToValidate, "ControlToValidate");
\r
85 protected virtual bool OnServerValidate(string value)
\r
89 ServerValidateEventHandler sveh = (ServerValidateEventHandler)(Events[ServerValidateEvent]);
\r
92 ServerValidateEventArgs args = new ServerValidateEventArgs(value, true);
\r
94 return args.IsValid;
\r
100 protected override bool EvaluateIsValid()
\r
102 string ctrl = ControlToValidate;
\r
103 if(ctrl.Length > 0)
\r
105 ctrl = GetControlValidationValue(ctrl);
\r
106 if(ctrl== null || ctrl.Length == 0)
\r
111 return OnServerValidate(ctrl);
\r