Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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.
//
//-----------------------------------------------------------------------------
/*
*/
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridViewLinkCell.cs
- NamespaceInfo.cs
- FixedDocument.cs
- XmlSiteMapProvider.cs
- SolidColorBrush.cs
- AffineTransform3D.cs
- _SafeNetHandles.cs
- OperationResponse.cs
- EdmValidator.cs
- SplitterDesigner.cs
- ActivationServices.cs
- Shape.cs
- CellTreeNode.cs
- Guid.cs
- contentDescriptor.cs
- OleDbErrorCollection.cs
- MessageDroppedTraceRecord.cs
- XmlSchemaSubstitutionGroup.cs
- DriveNotFoundException.cs
- ConstantProjectedSlot.cs
- OperationCanceledException.cs
- SymmetricKeyWrap.cs
- SafeRightsManagementQueryHandle.cs
- SafeNativeMethods.cs
- Predicate.cs
- PointHitTestParameters.cs
- WCFServiceClientProxyGenerator.cs
- XamlSerializerUtil.cs
- ServiceEndpointElement.cs
- IIS7UserPrincipal.cs
- DecoderFallback.cs
- ContractTypeNameCollection.cs
- TagPrefixInfo.cs
- SeverityFilter.cs
- EndOfStreamException.cs
- RouteParametersHelper.cs
- Range.cs
- StickyNoteContentControl.cs
- RegionIterator.cs
- DataSourceXmlAttributeAttribute.cs
- DynamicAttribute.cs
- ConnectorSelectionGlyph.cs
- WebPartConnectionsDisconnectVerb.cs
- DataServiceBuildProvider.cs
- WizardPanel.cs
- WebServiceMethodData.cs
- CornerRadiusConverter.cs
- MemberInitExpression.cs
- XmlBoundElement.cs
- DataGridViewLinkColumn.cs
- TileBrush.cs
- SectionRecord.cs
- CreateUserWizardAutoFormat.cs
- PathTooLongException.cs
- WebHttpBehavior.cs
- ProjectedWrapper.cs
- InsufficientMemoryException.cs
- Rfc2898DeriveBytes.cs
- XmlMembersMapping.cs
- RemotingSurrogateSelector.cs
- FlowSwitchLink.cs
- BulletedList.cs
- ControlValuePropertyAttribute.cs
- RevocationPoint.cs
- XXXOnTypeBuilderInstantiation.cs
- MatrixTransform3D.cs
- EventLogger.cs
- BitmapEffectInputData.cs
- Propagator.Evaluator.cs
- XmlMtomWriter.cs
- ClientRolePrincipal.cs
- DrawingContextWalker.cs
- X509SecurityTokenAuthenticator.cs
- StorageSetMapping.cs
- AddressAccessDeniedException.cs
- DockPanel.cs
- SafeEventHandle.cs
- _SslStream.cs
- GacUtil.cs
- DataGridColumnDropSeparator.cs
- DataConnectionHelper.cs
- AssemblyEvidenceFactory.cs
- ByteAnimationUsingKeyFrames.cs
- IdnElement.cs
- CatalogPartChrome.cs
- ConversionContext.cs
- ButtonRenderer.cs
- LayoutDump.cs
- MaskedTextProvider.cs
- DataAdapter.cs
- ListViewDeletedEventArgs.cs
- NumberFormatInfo.cs
- StylusPointPropertyInfo.cs
- PackagePartCollection.cs
- path.cs
- StrongNameMembershipCondition.cs
- FigureHelper.cs
- AdRotatorDesigner.cs
- Rect.cs
- DbProviderFactories.cs