Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / UI / WebControls / CompareValidator.cs / 1 / CompareValidator.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System.ComponentModel;
using System.Web;
using System.Globalization;
using System.Security.Permissions;
using System.Web.Util;
///
/// Compares the value of an input control to another input control or
/// a constant value using a variety of operators and types.
///
[
ToolboxData("<{0}:CompareValidator runat=\"server\" ErrorMessage=\"CompareValidator\">{0}:CompareValidator>")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class CompareValidator : BaseCompareValidator {
///
/// Gets or sets the ID of the input control to compare with.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
WebSysDescription(SR.CompareValidator_ControlToCompare),
TypeConverter(typeof(ValidatedControlConverter))
]
public string ControlToCompare {
get {
object o = ViewState["ControlToCompare"];
return((o == null) ? String.Empty : (string)o);
}
set {
ViewState["ControlToCompare"] = value;
}
}
///
/// Gets or sets the comparison operation to perform.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(ValidationCompareOperator.Equal),
WebSysDescription(SR.CompareValidator_Operator)
]
public ValidationCompareOperator Operator {
get {
object o = ViewState["Operator"];
return((o == null) ? ValidationCompareOperator.Equal : (ValidationCompareOperator)o);
}
set {
if (value < ValidationCompareOperator.Equal || value > ValidationCompareOperator.DataTypeCheck) {
throw new ArgumentOutOfRangeException("value");
}
ViewState["Operator"] = value;
}
}
///
/// Gets or sets the specific value to compare with.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
WebSysDescription(SR.CompareValidator_ValueToCompare)
]
public string ValueToCompare {
get {
object o = ViewState["ValueToCompare"];
return((o == null) ? String.Empty : (string)o);
}
set {
ViewState["ValueToCompare"] = value;
}
}
//
// AddAttributesToRender method
//
///
///
/// Adds the attributes of this 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", "CompareValidatorEvaluateIsValid", false);
if (ControlToCompare.Length > 0) {
string controlToCompareID = GetControlRenderID(ControlToCompare);
AddExpandoAttribute(expandoAttributeWriter, id, "controltocompare", controlToCompareID);
AddExpandoAttribute(expandoAttributeWriter, id, "controlhookup", controlToCompareID);
}
if (ValueToCompare.Length > 0) {
string valueToCompareString = ValueToCompare;
if (CultureInvariantValues) {
valueToCompareString = ConvertCultureInvariantToCurrentCultureFormat(valueToCompareString, Type);
}
AddExpandoAttribute(expandoAttributeWriter, id, "valuetocompare", valueToCompareString);
}
if (Operator != ValidationCompareOperator.Equal) {
AddExpandoAttribute(expandoAttributeWriter, id, "operator", PropertyConverter.EnumToString(typeof(ValidationCompareOperator), Operator), false);
}
}
}
///
///
/// Checks the properties of a the control for valid values.
///
protected override bool ControlPropertiesValid() {
// Check the control id references
if (ControlToCompare.Length > 0) {
CheckControlValidationProperty(ControlToCompare, "ControlToCompare");
if (StringUtil.EqualsIgnoreCase(ControlToValidate, ControlToCompare)) {
throw new HttpException(SR.GetString(SR.Validator_bad_compare_control,
ID,
ControlToCompare));
}
}
else {
// Check Values
if (Operator != ValidationCompareOperator.DataTypeCheck &&
!CanConvert(ValueToCompare, Type, CultureInvariantValues)) {
throw new HttpException(
SR.GetString(
SR.Validator_value_bad_type,
new string [] {
ValueToCompare,
"ValueToCompare",
ID,
PropertyConverter.EnumToString(typeof(ValidationDataType), Type),
}));
}
}
return base.ControlPropertiesValid();
}
///
///
/// EvaluateIsValid method
///
protected override bool EvaluateIsValid() {
Debug.Assert(PropertiesValid, "Properties should have already been checked");
// Get the peices of text from the control.
string leftText = GetControlValidationValue(ControlToValidate);
Debug.Assert(leftText != null, "Should have already caught this!");
// Special case: if the string is blank, we don't try to validate it. The input should be
// trimmed for coordination with the RequiredFieldValidator.
if (leftText.Trim().Length == 0) {
return true;
}
// VSWhidbey 83168
bool convertDate = (Type == ValidationDataType.Date && !DetermineRenderUplevel());
if (convertDate && !IsInStandardDateFormat(leftText)) {
leftText = ConvertToShortDateString(leftText);
}
// The control has precedence over the fixed value
bool isCultureInvariantValue = false;
string rightText = string.Empty;
if (ControlToCompare.Length > 0) {
rightText = GetControlValidationValue(ControlToCompare);
Debug.Assert(rightText != null, "Should have already caught this!");
// VSWhidbey 83089
if (convertDate && !IsInStandardDateFormat(rightText)) {
rightText = ConvertToShortDateString(rightText);
}
}
else {
rightText = ValueToCompare;
isCultureInvariantValue = CultureInvariantValues;
}
return Compare(leftText, false, rightText, isCultureInvariantValue, Operator, Type);
}
}
}
// 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.Globalization;
using System.Security.Permissions;
using System.Web.Util;
///
/// Compares the value of an input control to another input control or
/// a constant value using a variety of operators and types.
///
[
ToolboxData("<{0}:CompareValidator runat=\"server\" ErrorMessage=\"CompareValidator\">{0}:CompareValidator>")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class CompareValidator : BaseCompareValidator {
///
/// Gets or sets the ID of the input control to compare with.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
WebSysDescription(SR.CompareValidator_ControlToCompare),
TypeConverter(typeof(ValidatedControlConverter))
]
public string ControlToCompare {
get {
object o = ViewState["ControlToCompare"];
return((o == null) ? String.Empty : (string)o);
}
set {
ViewState["ControlToCompare"] = value;
}
}
///
/// Gets or sets the comparison operation to perform.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(ValidationCompareOperator.Equal),
WebSysDescription(SR.CompareValidator_Operator)
]
public ValidationCompareOperator Operator {
get {
object o = ViewState["Operator"];
return((o == null) ? ValidationCompareOperator.Equal : (ValidationCompareOperator)o);
}
set {
if (value < ValidationCompareOperator.Equal || value > ValidationCompareOperator.DataTypeCheck) {
throw new ArgumentOutOfRangeException("value");
}
ViewState["Operator"] = value;
}
}
///
/// Gets or sets the specific value to compare with.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
WebSysDescription(SR.CompareValidator_ValueToCompare)
]
public string ValueToCompare {
get {
object o = ViewState["ValueToCompare"];
return((o == null) ? String.Empty : (string)o);
}
set {
ViewState["ValueToCompare"] = value;
}
}
//
// AddAttributesToRender method
//
///
///
/// Adds the attributes of this 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", "CompareValidatorEvaluateIsValid", false);
if (ControlToCompare.Length > 0) {
string controlToCompareID = GetControlRenderID(ControlToCompare);
AddExpandoAttribute(expandoAttributeWriter, id, "controltocompare", controlToCompareID);
AddExpandoAttribute(expandoAttributeWriter, id, "controlhookup", controlToCompareID);
}
if (ValueToCompare.Length > 0) {
string valueToCompareString = ValueToCompare;
if (CultureInvariantValues) {
valueToCompareString = ConvertCultureInvariantToCurrentCultureFormat(valueToCompareString, Type);
}
AddExpandoAttribute(expandoAttributeWriter, id, "valuetocompare", valueToCompareString);
}
if (Operator != ValidationCompareOperator.Equal) {
AddExpandoAttribute(expandoAttributeWriter, id, "operator", PropertyConverter.EnumToString(typeof(ValidationCompareOperator), Operator), false);
}
}
}
///
///
/// Checks the properties of a the control for valid values.
///
protected override bool ControlPropertiesValid() {
// Check the control id references
if (ControlToCompare.Length > 0) {
CheckControlValidationProperty(ControlToCompare, "ControlToCompare");
if (StringUtil.EqualsIgnoreCase(ControlToValidate, ControlToCompare)) {
throw new HttpException(SR.GetString(SR.Validator_bad_compare_control,
ID,
ControlToCompare));
}
}
else {
// Check Values
if (Operator != ValidationCompareOperator.DataTypeCheck &&
!CanConvert(ValueToCompare, Type, CultureInvariantValues)) {
throw new HttpException(
SR.GetString(
SR.Validator_value_bad_type,
new string [] {
ValueToCompare,
"ValueToCompare",
ID,
PropertyConverter.EnumToString(typeof(ValidationDataType), Type),
}));
}
}
return base.ControlPropertiesValid();
}
///
///
/// EvaluateIsValid method
///
protected override bool EvaluateIsValid() {
Debug.Assert(PropertiesValid, "Properties should have already been checked");
// Get the peices of text from the control.
string leftText = GetControlValidationValue(ControlToValidate);
Debug.Assert(leftText != null, "Should have already caught this!");
// Special case: if the string is blank, we don't try to validate it. The input should be
// trimmed for coordination with the RequiredFieldValidator.
if (leftText.Trim().Length == 0) {
return true;
}
// VSWhidbey 83168
bool convertDate = (Type == ValidationDataType.Date && !DetermineRenderUplevel());
if (convertDate && !IsInStandardDateFormat(leftText)) {
leftText = ConvertToShortDateString(leftText);
}
// The control has precedence over the fixed value
bool isCultureInvariantValue = false;
string rightText = string.Empty;
if (ControlToCompare.Length > 0) {
rightText = GetControlValidationValue(ControlToCompare);
Debug.Assert(rightText != null, "Should have already caught this!");
// VSWhidbey 83089
if (convertDate && !IsInStandardDateFormat(rightText)) {
rightText = ConvertToShortDateString(rightText);
}
}
else {
rightText = ValueToCompare;
isCultureInvariantValue = CultureInvariantValues;
}
return Compare(leftText, false, rightText, isCultureInvariantValue, Operator, Type);
}
}
}
// 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
- SelectionEditingBehavior.cs
- ExceptionCollection.cs
- Zone.cs
- SapiRecoContext.cs
- DependencyObjectType.cs
- JobPageOrder.cs
- OperationContractAttribute.cs
- DataError.cs
- BamlRecordWriter.cs
- UInt32Storage.cs
- AccessControlList.cs
- WsatConfiguration.cs
- GradientSpreadMethodValidation.cs
- Propagator.ExtentPlaceholderCreator.cs
- ProfileParameter.cs
- SocketAddress.cs
- PtsHost.cs
- ProcessModelSection.cs
- EditorReuseAttribute.cs
- WriteTimeStream.cs
- _IPv4Address.cs
- CapabilitiesSection.cs
- DeferredSelectedIndexReference.cs
- EdmEntityTypeAttribute.cs
- SystemIPGlobalProperties.cs
- DummyDataSource.cs
- Light.cs
- WebPartDeleteVerb.cs
- SiteMap.cs
- MultipleCopiesCollection.cs
- XPathAncestorIterator.cs
- SimpleHandlerFactory.cs
- EncoderReplacementFallback.cs
- diagnosticsswitches.cs
- XmlMtomWriter.cs
- ButtonPopupAdapter.cs
- PeerCollaboration.cs
- SmiSettersStream.cs
- DbConnectionHelper.cs
- EventLogPermissionEntry.cs
- RawStylusSystemGestureInputReport.cs
- TracingConnectionInitiator.cs
- Timer.cs
- UndoEngine.cs
- EditorZone.cs
- IIS7WorkerRequest.cs
- HandlerBase.cs
- MatcherBuilder.cs
- StringToken.cs
- BindingGraph.cs
- DataView.cs
- CustomAssemblyResolver.cs
- DesignTimeParseData.cs
- _ProxyChain.cs
- XamlPointCollectionSerializer.cs
- WebBaseEventKeyComparer.cs
- ReservationNotFoundException.cs
- PrePrepareMethodAttribute.cs
- RenderCapability.cs
- ItemCheckEvent.cs
- SqlBulkCopyColumnMapping.cs
- TextPattern.cs
- ServicePoint.cs
- RequestStatusBarUpdateEventArgs.cs
- Composition.cs
- ContextMenuStrip.cs
- XmlCompatibilityReader.cs
- BuildProvidersCompiler.cs
- DBParameter.cs
- grammarelement.cs
- HybridObjectCache.cs
- EntityModelSchemaGenerator.cs
- TextSelectionHighlightLayer.cs
- Pair.cs
- CaseStatement.cs
- EntityModelBuildProvider.cs
- isolationinterop.cs
- OledbConnectionStringbuilder.cs
- SafePEFileHandle.cs
- ToolStripOverflow.cs
- Stylesheet.cs
- securitycriticaldata.cs
- ForwardPositionQuery.cs
- _FixedSizeReader.cs
- _HelperAsyncResults.cs
- AtomMaterializerLog.cs
- LinearGradientBrush.cs
- GroupBoxRenderer.cs
- TextEditor.cs
- AnnotationAuthorChangedEventArgs.cs
- LineUtil.cs
- ProfileGroupSettingsCollection.cs
- DataGridItemCollection.cs
- TrackingWorkflowEventArgs.cs
- Win32Native.cs
- RepeaterItemCollection.cs
- _ListenerResponseStream.cs
- SelectionBorderGlyph.cs
- EdmMember.cs
- DESCryptoServiceProvider.cs