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 / CustomValidator.cs / 1 / CustomValidator.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System.ComponentModel;
using System.Web;
using System.Security.Permissions;
using System.Web.Util;
///
/// Allows custom code to perform
/// validation on the client and/or server.
///
[
DefaultEvent("ServerValidate"),
ToolboxData("<{0}:CustomValidator runat=\"server\" ErrorMessage=\"CustomValidator\">{0}:CustomValidator>")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class CustomValidator : BaseValidator {
private static readonly object EventServerValidate= new object();
///
/// Gets and sets the custom client Javascript function used
/// for validation.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
WebSysDescription(SR.CustomValidator_ClientValidationFunction)
]
public string ClientValidationFunction {
get {
object o = ViewState["ClientValidationFunction"];
return((o == null) ? String.Empty : (string)o);
}
set {
ViewState["ClientValidationFunction"] = value;
}
}
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(false),
WebSysDescription(SR.CustomValidator_ValidateEmptyText),
]
public bool ValidateEmptyText {
get {
object o = ViewState["ValidateEmptyText"];
return((o == null) ? false : (bool)o);
}
set {
ViewState["ValidateEmptyText"] = value;
}
}
///
/// Represents the method that will handle the
/// event of a
/// .
///
[
WebSysDescription(SR.CustomValidator_ServerValidate)
]
public event ServerValidateEventHandler ServerValidate {
add {
Events.AddHandler(EventServerValidate, value);
}
remove {
Events.RemoveHandler(EventServerValidate, value);
}
}
///
///
/// Adds the properties of the control to the
/// output stream for rendering on the client.
///
protected override void AddAttributesToRender(HtmlTextWriter writer) {
base.AddAttributesToRender(writer);
if (RenderUplevel) {
string id = ClientID;
HtmlTextWriter expandoAttributeWriter = (EnableLegacyRendering) ? writer : null;
AddExpandoAttribute(expandoAttributeWriter, id, "evaluationfunction", "CustomValidatorEvaluateIsValid", false);
if (ClientValidationFunction.Length > 0) {
AddExpandoAttribute(expandoAttributeWriter, id, "clientvalidationfunction", ClientValidationFunction);
if (ValidateEmptyText) {
AddExpandoAttribute(expandoAttributeWriter, id, "validateemptytext", "true", false);
}
}
}
}
///
///
/// Checks the properties of the control for valid values.
///
protected override bool ControlPropertiesValid() {
// Need to override the BaseValidator implementation, because for CustomValidator, it is fine
// for the ControlToValidate to be blank.
string controlToValidate = ControlToValidate;
if (controlToValidate.Length > 0) {
// Check that the property points to a valid control. Will throw and exception if not found
CheckControlValidationProperty(controlToValidate, "ControlToValidate");
}
return true;
}
///
///
/// EvaluateIsValid method
///
protected override bool EvaluateIsValid() {
// If no control is specified, we always fire the event. If they have specified a control, we
// only fire the event if the input is non-blank.
string controlValue = String.Empty;
string controlToValidate = ControlToValidate;
if (controlToValidate.Length > 0) {
controlValue = GetControlValidationValue(controlToValidate);
Debug.Assert(controlValue != null, "Should have been caught be property check");
// If the text is empty, we return true. Whitespace is ignored for coordination wiht
// RequiredFieldValidator.
if ((controlValue == null || controlValue.Trim().Length == 0) &&
!ValidateEmptyText) {
return true;
}
}
return OnServerValidate(controlValue);
}
///
/// Raises the
/// event for the .
///
protected virtual bool OnServerValidate(string value) {
ServerValidateEventHandler handler = (ServerValidateEventHandler)Events[EventServerValidate];
ServerValidateEventArgs args = new ServerValidateEventArgs(value, true);
if (handler != null) {
handler(this, args);
return args.IsValid;
}
else {
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.Web;
using System.Security.Permissions;
using System.Web.Util;
///
/// Allows custom code to perform
/// validation on the client and/or server.
///
[
DefaultEvent("ServerValidate"),
ToolboxData("<{0}:CustomValidator runat=\"server\" ErrorMessage=\"CustomValidator\">{0}:CustomValidator>")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class CustomValidator : BaseValidator {
private static readonly object EventServerValidate= new object();
///
/// Gets and sets the custom client Javascript function used
/// for validation.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
WebSysDescription(SR.CustomValidator_ClientValidationFunction)
]
public string ClientValidationFunction {
get {
object o = ViewState["ClientValidationFunction"];
return((o == null) ? String.Empty : (string)o);
}
set {
ViewState["ClientValidationFunction"] = value;
}
}
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(false),
WebSysDescription(SR.CustomValidator_ValidateEmptyText),
]
public bool ValidateEmptyText {
get {
object o = ViewState["ValidateEmptyText"];
return((o == null) ? false : (bool)o);
}
set {
ViewState["ValidateEmptyText"] = value;
}
}
///
/// Represents the method that will handle the
/// event of a
/// .
///
[
WebSysDescription(SR.CustomValidator_ServerValidate)
]
public event ServerValidateEventHandler ServerValidate {
add {
Events.AddHandler(EventServerValidate, value);
}
remove {
Events.RemoveHandler(EventServerValidate, value);
}
}
///
///
/// Adds the properties of the control to the
/// output stream for rendering on the client.
///
protected override void AddAttributesToRender(HtmlTextWriter writer) {
base.AddAttributesToRender(writer);
if (RenderUplevel) {
string id = ClientID;
HtmlTextWriter expandoAttributeWriter = (EnableLegacyRendering) ? writer : null;
AddExpandoAttribute(expandoAttributeWriter, id, "evaluationfunction", "CustomValidatorEvaluateIsValid", false);
if (ClientValidationFunction.Length > 0) {
AddExpandoAttribute(expandoAttributeWriter, id, "clientvalidationfunction", ClientValidationFunction);
if (ValidateEmptyText) {
AddExpandoAttribute(expandoAttributeWriter, id, "validateemptytext", "true", false);
}
}
}
}
///
///
/// Checks the properties of the control for valid values.
///
protected override bool ControlPropertiesValid() {
// Need to override the BaseValidator implementation, because for CustomValidator, it is fine
// for the ControlToValidate to be blank.
string controlToValidate = ControlToValidate;
if (controlToValidate.Length > 0) {
// Check that the property points to a valid control. Will throw and exception if not found
CheckControlValidationProperty(controlToValidate, "ControlToValidate");
}
return true;
}
///
///
/// EvaluateIsValid method
///
protected override bool EvaluateIsValid() {
// If no control is specified, we always fire the event. If they have specified a control, we
// only fire the event if the input is non-blank.
string controlValue = String.Empty;
string controlToValidate = ControlToValidate;
if (controlToValidate.Length > 0) {
controlValue = GetControlValidationValue(controlToValidate);
Debug.Assert(controlValue != null, "Should have been caught be property check");
// If the text is empty, we return true. Whitespace is ignored for coordination wiht
// RequiredFieldValidator.
if ((controlValue == null || controlValue.Trim().Length == 0) &&
!ValidateEmptyText) {
return true;
}
}
return OnServerValidate(controlValue);
}
///
/// Raises the
/// event for the .
///
protected virtual bool OnServerValidate(string value) {
ServerValidateEventHandler handler = (ServerValidateEventHandler)Events[EventServerValidate];
ServerValidateEventArgs args = new ServerValidateEventArgs(value, true);
if (handler != null) {
handler(this, args);
return args.IsValid;
}
else {
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
- MimeParameter.cs
- SystemSounds.cs
- TreeNode.cs
- SchemaDeclBase.cs
- Fonts.cs
- SoapIncludeAttribute.cs
- DoubleStorage.cs
- DefaultProxySection.cs
- Model3DCollection.cs
- PeerInvitationResponse.cs
- SqlEnums.cs
- FigureParagraph.cs
- WizardStepBase.cs
- StringResourceManager.cs
- GridItem.cs
- ConnectionProviderAttribute.cs
- EntityModelBuildProvider.cs
- ComPlusServiceLoader.cs
- ResourceIDHelper.cs
- RuleInfoComparer.cs
- FixedTextContainer.cs
- PagerSettings.cs
- ModelProperty.cs
- BorderGapMaskConverter.cs
- GlyphRunDrawing.cs
- ExpressionNode.cs
- MatchAttribute.cs
- VBIdentifierName.cs
- EventItfInfo.cs
- AutomationPropertyInfo.cs
- CodeNamespaceCollection.cs
- XPathItem.cs
- WaitHandle.cs
- WorkflowItemPresenter.cs
- ServiceHostingEnvironment.cs
- Ops.cs
- CacheHelper.cs
- LookupBindingPropertiesAttribute.cs
- OracleBFile.cs
- AttributeUsageAttribute.cs
- CodeDomExtensionMethods.cs
- RuntimeCompatibilityAttribute.cs
- ServiceMemoryGates.cs
- ResourcePermissionBase.cs
- Enum.cs
- PowerStatus.cs
- DocComment.cs
- SchemaRegistration.cs
- ColorConvertedBitmap.cs
- OdbcStatementHandle.cs
- QueryGenerator.cs
- DateTimeFormat.cs
- TimelineClockCollection.cs
- UInt32Converter.cs
- SqlParameterCollection.cs
- nulltextnavigator.cs
- WebPartDisplayModeCancelEventArgs.cs
- InternalsVisibleToAttribute.cs
- DoubleAnimationBase.cs
- UriScheme.cs
- MissingManifestResourceException.cs
- CalendarDateRange.cs
- SelectedGridItemChangedEvent.cs
- NestPullup.cs
- XmlSchemaSequence.cs
- HttpApplicationStateWrapper.cs
- ObjectKeyFrameCollection.cs
- XMLDiffLoader.cs
- TraceXPathNavigator.cs
- DoubleLinkListEnumerator.cs
- WsdlWriter.cs
- TrailingSpaceComparer.cs
- ControlPaint.cs
- CqlParser.cs
- TextViewElement.cs
- MasterPageBuildProvider.cs
- LocalizableAttribute.cs
- AuthenticationConfig.cs
- ReadOnlyDictionary.cs
- Geometry.cs
- AppDomainResourcePerfCounters.cs
- XmlSchemaAnnotation.cs
- StsCommunicationException.cs
- unitconverter.cs
- Splitter.cs
- WizardForm.cs
- DataGridColumn.cs
- basecomparevalidator.cs
- SafeFileMappingHandle.cs
- Rotation3D.cs
- FamilyCollection.cs
- ToggleProviderWrapper.cs
- NativeMethods.cs
- HorizontalAlignConverter.cs
- EmptyEnumerator.cs
- RNGCryptoServiceProvider.cs
- _HeaderInfoTable.cs
- CodeExpressionStatement.cs
- WindowPattern.cs
- ProtocolsConfiguration.cs