2 // System.Web.UI.WebControls.RangeValidator.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
13 // Permission is hereby granted, free of charge, to any person obtaining
14 // a copy of this software and associated documentation files (the
15 // "Software"), to deal in the Software without restriction, including
16 // without limitation the rights to use, copy, modify, merge, publish,
17 // distribute, sublicense, and/or sell copies of the Software, and to
18 // permit persons to whom the Software is furnished to do so, subject to
19 // the following conditions:
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 using System.ComponentModel;
\r
36 using System.Web.UI;
\r
39 namespace System.Web.UI.WebControls
\r
41 [ToolboxData("<{0}:RangeValidator runat=\"server\" "
\r
42 + "ErrorMessage=\"RangeValidator\"></{0}:RangeValidator>")]
\r
43 public class RangeValidator : BaseCompareValidator
\r
45 public RangeValidator(): base()
\r
49 [DefaultValue (""), Bindable (true), WebCategory ("Behavior")]
50 [WebSysDescription ("The maximum value that the validated control can be assigned.")]
\r
51 public string MaximumValue
\r
55 object o = ViewState["MaximumValue"];
\r
60 return String.Empty;
\r
64 ViewState["MaximumValue"] = value;
\r
68 [DefaultValue (""), Bindable (true), WebCategory ("Behavior")]
69 [WebSysDescription ("The minimum value that the validated control can be assigned.")]
\r
70 public string MinimumValue
\r
74 object o = ViewState["MinimumValue"];
\r
79 return String.Empty;
\r
83 ViewState["MinimumValue"] = value;
\r
87 protected override void AddAttributesToRender(HtmlTextWriter writer)
\r
89 base.AddAttributesToRender(writer);
\r
90 if(base.RenderUplevel)
\r
92 writer.AddAttribute("evaluationfunction", "RangeValidatorEvaluateIsValid");
\r
93 writer.AddAttribute("maximumvalue", MaximumValue);
\r
94 writer.AddAttribute("minimumvalue", MinimumValue);
\r
98 protected override bool ControlPropertiesValid()
\r
100 string max = MaximumValue;
\r
101 if(!CanConvert(max, Type))
\r
103 string[] fmt = new string[4];
\r
105 fmt[1] = "MaximumValue";
\r
107 fmt[3] = PropertyConverter.EnumToString(typeof(ValidationDataType), Type);
\r
108 throw new HttpException(HttpRuntime.FormatResourceString("Validator_value_bad_type", fmt));
\r
110 string min = MinimumValue;
\r
111 if(!CanConvert(min, Type))
\r
113 string[] fmt = new string[4];
\r
115 fmt[1] = "MinimumValue";
\r
117 fmt[3] = PropertyConverter.EnumToString(typeof(ValidationDataType), Type);
\r
118 throw new HttpException(HttpRuntime.FormatResourceString("Validator_value_bad_type", fmt));
\r
121 if(Compare(min,max, ValidationCompareOperator.GreaterThan, Type))
\r
123 string[] fmt = new string[3];
\r
126 fmt[2] = PropertyConverter.EnumToString(typeof(ValidationDataType), Type);
\r
127 throw new HttpException(HttpRuntime.FormatResourceString("Validator_range_overalap", fmt));
\r
129 return base.ControlPropertiesValid();
\r
132 protected override bool EvaluateIsValid()
\r
134 string ctrl = GetControlValidationValue(ControlToValidate);
\r
135 if(ctrl == null || ctrl.Trim().Length == 0)
\r
139 bool retVal = Compare(ctrl, MinimumValue, ValidationCompareOperator.GreaterThanEqual,
\r
143 retVal = Compare(ctrl, MaximumValue, ValidationCompareOperator.LessThanEqual,
\r