protected override void RenderDataValidator( HtmlTextWriter writer )
{
_rangeValidator.Type = NumberType;
_rangeValidator.MinimumValue = this.MinimumValue;
_rangeValidator.MaximumValue = this.MaximumValue;
string dataTypeText = string.Empty;
int minValue = MinimumValue.AsIntegerOrNull() ?? int.MinValue;
int maxValue = MaximumValue.AsIntegerOrNull() ?? int.MaxValue;
string rangeMessageFormat = null;
// if they are in the valid range, but not an integer, they'll see this message
switch( _rangeValidator.Type )
{
case ValidationDataType.Integer: rangeMessageFormat = "{0} must be an integer"; break;
case ValidationDataType.Double: rangeMessageFormat = "{0} must be a decimal amout"; break;
case ValidationDataType.Currency: rangeMessageFormat = "{0} must be a currency amount"; break;
case ValidationDataType.Date: rangeMessageFormat = "{0} must be a date"; break;
case ValidationDataType.String: rangeMessageFormat = "{0} must be a string"; break;
}
if ( minValue > int.MinValue)
{
rangeMessageFormat = "{0} must be at least " + MinimumValue;
}
if ( maxValue < int.MaxValue )
{
rangeMessageFormat = "{0} must be at most " + MaximumValue;
}
if ( ( minValue > int.MinValue ) && ( maxValue < int.MaxValue ) )
{
rangeMessageFormat = string.Format( "{{0}} must be between {0} and {1} ", MinimumValue, MaximumValue );
}
if ( !string.IsNullOrWhiteSpace( rangeMessageFormat ) )
{
_rangeValidator.ErrorMessage = string.Format( rangeMessageFormat, string.IsNullOrWhiteSpace(FieldName) ? "Value" : FieldName );
}
_rangeValidator.ValidationGroup = this.ValidationGroup;
_rangeValidator.RenderControl( writer );
}