Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / WebControls / RegularExpressionValidator.cs / 1 / RegularExpressionValidator.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Web.UI.WebControls {
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Text.RegularExpressions;
using System.Drawing.Design;
using System.Web;
using System.Security.Permissions;
using System.Web.Util;
///
/// Checks if the value of the associated input control matches the pattern
/// of a regular expression.
///
[
ToolboxData("<{0}:RegularExpressionValidator runat=\"server\" ErrorMessage=\"RegularExpressionValidator\">{0}:RegularExpressionValidator>")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class RegularExpressionValidator : BaseValidator {
///
/// Indicates the regular expression assigned to be the validation criteria.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
Editor("System.Web.UI.Design.WebControls.RegexTypeEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)),
WebSysDescription(SR.RegularExpressionValidator_ValidationExpression)
]
public string ValidationExpression {
get {
object o = ViewState["ValidationExpression"];
return((o == null) ? String.Empty : (string)o);
}
set {
try {
Regex.IsMatch(String.Empty, value);
}
catch (Exception e) {
throw new HttpException(
SR.GetString(SR.Validator_bad_regex, value), e);
}
ViewState["ValidationExpression"] = value;
}
}
///
///
/// AddAttributesToRender method
///
protected override void AddAttributesToRender(HtmlTextWriter writer) {
base.AddAttributesToRender(writer);
if (RenderUplevel) {
string id = ClientID;
HtmlTextWriter expandoAttributeWriter = (EnableLegacyRendering) ? writer : null;
AddExpandoAttribute(expandoAttributeWriter, id, "evaluationfunction", "RegularExpressionValidatorEvaluateIsValid", false);
if (ValidationExpression.Length > 0) {
AddExpandoAttribute(expandoAttributeWriter, id, "validationexpression", ValidationExpression);
}
}
}
///
///
/// EvaluateIsValid method
///
protected override bool EvaluateIsValid() {
// Always succeeds if input is empty or value was not found
string controlValue = GetControlValidationValue(ControlToValidate);
Debug.Assert(controlValue != null, "Should have already been checked");
if (controlValue == null || controlValue.Trim().Length == 0) {
return true;
}
try {
// we are looking for an exact match, not just a search hit
Match m = Regex.Match(controlValue, ValidationExpression);
return(m.Success && m.Index == 0 && m.Length == controlValue.Length);
}
catch {
Debug.Fail("Regex error should have been caught in property setter.");
return true;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BitmapDownload.cs
- ScopeElementCollection.cs
- PathData.cs
- ExternalCalls.cs
- JoinElimination.cs
- RegexTree.cs
- ColorDialog.cs
- PolyBezierSegment.cs
- ProtocolsSection.cs
- HtmlContainerControl.cs
- StackSpiller.Bindings.cs
- RuntimeCompatibilityAttribute.cs
- HashHelper.cs
- InputLangChangeEvent.cs
- DataSourceControl.cs
- FlowDocument.cs
- CorrelationManager.cs
- UIAgentAsyncParams.cs
- SoundPlayer.cs
- Geometry.cs
- ImageFormatConverter.cs
- FileRecordSequenceCompletedAsyncResult.cs
- PrintDocument.cs
- AppSettingsExpressionEditor.cs
- StringCollection.cs
- SqlConnection.cs
- XmlUnspecifiedAttribute.cs
- DeclarationUpdate.cs
- XmlReader.cs
- ClaimTypes.cs
- UrlPath.cs
- HierarchicalDataSourceConverter.cs
- SqlClientWrapperSmiStream.cs
- BackoffTimeoutHelper.cs
- Literal.cs
- DefaultTypeArgumentAttribute.cs
- PresentationUIStyleResources.cs
- ProcessInfo.cs
- documentsequencetextcontainer.cs
- ProfileModule.cs
- Matrix3DConverter.cs
- ValidationPropertyAttribute.cs
- Soap.cs
- SettingsBase.cs
- StrongNamePublicKeyBlob.cs
- HttpValueCollection.cs
- TraversalRequest.cs
- ProfileModule.cs
- UnsupportedPolicyOptionsException.cs
- TypeContext.cs
- TextDecoration.cs
- QilBinary.cs
- BaseAsyncResult.cs
- HttpRuntime.cs
- FormattedTextSymbols.cs
- Duration.cs
- Serializer.cs
- Int32KeyFrameCollection.cs
- CompModSwitches.cs
- DataServiceRequestOfT.cs
- GroupQuery.cs
- TextClipboardData.cs
- RequiredFieldValidator.cs
- PropertyItem.cs
- ControlBuilderAttribute.cs
- ScaleTransform3D.cs
- JoinQueryOperator.cs
- GridViewEditEventArgs.cs
- ETagAttribute.cs
- RowUpdatedEventArgs.cs
- MethodMessage.cs
- InstallerTypeAttribute.cs
- StoreItemCollection.cs
- TouchFrameEventArgs.cs
- MultiView.cs
- HttpException.cs
- Group.cs
- ObjectDataSourceDisposingEventArgs.cs
- MessageSecurityVersionConverter.cs
- ProxyElement.cs
- x509utils.cs
- SslStream.cs
- SoapObjectWriter.cs
- RectangleGeometry.cs
- DynamicHyperLink.cs
- IImplicitResourceProvider.cs
- XmlSchemaSubstitutionGroup.cs
- Int64Converter.cs
- Table.cs
- DataGridViewElement.cs
- SecurityPermission.cs
- RequestQueue.cs
- StreamUpdate.cs
- CustomWebEventKey.cs
- BitmapEffectInputData.cs
- FieldToken.cs
- SoapServerProtocol.cs
- ArrayExtension.cs
- DesigntimeLicenseContextSerializer.cs
- XmlSchemaObject.cs