CustomValidator.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / CustomValidator.cs / 1305376 / CustomValidator.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System.ComponentModel; 
using System.Diagnostics; 
using System.Web.UI.WebControls;
using WebCntrls = System.Web.UI.WebControls; 
using System.Security.Permissions;

namespace System.Web.UI.MobileControls
{ 
    /*
     * Mobile CustomValidator class. 
     * The CustomValidator provides the ability to easily write custom server 
     * validation logic.  A user-defined function is called via a single-cast
     * delegate to provide server-side custom validation. 
     *
     * Copyright (c) 2000 Microsoft Corporation
     */
    ///  
    [
        DefaultEvent("ServerValidate"), 
        ToolboxData("<{0}:CustomValidator runat=\"server\" ErrorMessage=\"CustomValidator\">"), 
        ToolboxItem("System.Web.UI.Design.WebControlToolboxItem, " + AssemblyRef.SystemDesign)
    ] 
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
    public class CustomValidator : BaseValidator 
    {
        private WebCntrls.CustomValidator _webCustomValidator; 
 
        // Static objects to identify individual events stored in Events
        // property. 
        private static readonly Object EventServerValidate = new Object();

        /// 
        protected override WebCntrls.BaseValidator CreateWebValidator() 
        {
            _webCustomValidator = new WebCntrls.CustomValidator(); 
 
            // Adding wrapper event handlers for event properties exposed by
            // the aggregated control.  For more details about the mechanism, 
            // please see the comment in the constructor of
            // Mobile.UI.AdRotator.
            ServerValidateEventHandler eventHandler =
                new ServerValidateEventHandler(WebServerValidate); 

            _webCustomValidator.ServerValidate += eventHandler; 
 
            return _webCustomValidator;
        } 

        ////////////////////////////////////////////////////////////////////////
        // Mimic the properties exposed in the original CustomValidator.
        //////////////////////////////////////////////////////////////////////// 

        ///  
        [ 
            Bindable(false),
            DefaultValue(null), 
            MobileSysDescription(SR.CustomValidator_OnServerValidate)
        ]
        public event ServerValidateEventHandler ServerValidate
        { 
            add
            { 
                Events.AddHandler(EventServerValidate, value); 
            }
            remove 
            {
                Events.RemoveHandler(EventServerValidate, value);
            }
        } 

        // protected method (which can be overridden by subclasses) for 
        // raising user events 
        /// 
        protected virtual bool OnServerValidate(String value) 
        {
            ServerValidateEventHandler handler = (ServerValidateEventHandler)Events[EventServerValidate];
            if (handler != null)
            { 
                ServerValidateEventArgs args = new ServerValidateEventArgs(value, true);
                handler(this, args); 
                return args.IsValid; 
            }
            else 
            {
                return true;
            }
        } 

        private void WebServerValidate(Object source, ServerValidateEventArgs e) 
        { 
            // Invoke user events for further manipulation specified by user
            Debug.Assert(e != null, "Unexpected null parameter!"); 
            e.IsValid = OnServerValidate(e.Value);
        }

        ///  
        protected override bool EvaluateIsValid()
        { 
            return EvaluateIsValidInternal(); 
        }
 
        /////////////////////////////////////////////////////////////////////
        // Helper function adopted from WebForms CustomValidator
        /////////////////////////////////////////////////////////////////////
 
        /// 
        protected override bool ControlPropertiesValid() 
        { 
            // Need to override the BaseValidator implementation, because for
            // CustomValidator, it is fine for ControlToValidate to be blank. 
            String controlToValidate = ControlToValidate;
            if (controlToValidate.Length > 0)
            {
                return base.ControlPropertiesValid(); 
            }
            return true; 
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System.ComponentModel; 
using System.Diagnostics; 
using System.Web.UI.WebControls;
using WebCntrls = System.Web.UI.WebControls; 
using System.Security.Permissions;

namespace System.Web.UI.MobileControls
{ 
    /*
     * Mobile CustomValidator class. 
     * The CustomValidator provides the ability to easily write custom server 
     * validation logic.  A user-defined function is called via a single-cast
     * delegate to provide server-side custom validation. 
     *
     * Copyright (c) 2000 Microsoft Corporation
     */
    ///  
    [
        DefaultEvent("ServerValidate"), 
        ToolboxData("<{0}:CustomValidator runat=\"server\" ErrorMessage=\"CustomValidator\">"), 
        ToolboxItem("System.Web.UI.Design.WebControlToolboxItem, " + AssemblyRef.SystemDesign)
    ] 
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
    public class CustomValidator : BaseValidator 
    {
        private WebCntrls.CustomValidator _webCustomValidator; 
 
        // Static objects to identify individual events stored in Events
        // property. 
        private static readonly Object EventServerValidate = new Object();

        /// 
        protected override WebCntrls.BaseValidator CreateWebValidator() 
        {
            _webCustomValidator = new WebCntrls.CustomValidator(); 
 
            // Adding wrapper event handlers for event properties exposed by
            // the aggregated control.  For more details about the mechanism, 
            // please see the comment in the constructor of
            // Mobile.UI.AdRotator.
            ServerValidateEventHandler eventHandler =
                new ServerValidateEventHandler(WebServerValidate); 

            _webCustomValidator.ServerValidate += eventHandler; 
 
            return _webCustomValidator;
        } 

        ////////////////////////////////////////////////////////////////////////
        // Mimic the properties exposed in the original CustomValidator.
        //////////////////////////////////////////////////////////////////////// 

        ///  
        [ 
            Bindable(false),
            DefaultValue(null), 
            MobileSysDescription(SR.CustomValidator_OnServerValidate)
        ]
        public event ServerValidateEventHandler ServerValidate
        { 
            add
            { 
                Events.AddHandler(EventServerValidate, value); 
            }
            remove 
            {
                Events.RemoveHandler(EventServerValidate, value);
            }
        } 

        // protected method (which can be overridden by subclasses) for 
        // raising user events 
        /// 
        protected virtual bool OnServerValidate(String value) 
        {
            ServerValidateEventHandler handler = (ServerValidateEventHandler)Events[EventServerValidate];
            if (handler != null)
            { 
                ServerValidateEventArgs args = new ServerValidateEventArgs(value, true);
                handler(this, args); 
                return args.IsValid; 
            }
            else 
            {
                return true;
            }
        } 

        private void WebServerValidate(Object source, ServerValidateEventArgs e) 
        { 
            // Invoke user events for further manipulation specified by user
            Debug.Assert(e != null, "Unexpected null parameter!"); 
            e.IsValid = OnServerValidate(e.Value);
        }

        ///  
        protected override bool EvaluateIsValid()
        { 
            return EvaluateIsValidInternal(); 
        }
 
        /////////////////////////////////////////////////////////////////////
        // Helper function adopted from WebForms CustomValidator
        /////////////////////////////////////////////////////////////////////
 
        /// 
        protected override bool ControlPropertiesValid() 
        { 
            // Need to override the BaseValidator implementation, because for
            // CustomValidator, it is fine for ControlToValidate to be blank. 
            String controlToValidate = ControlToValidate;
            if (controlToValidate.Length > 0)
            {
                return base.ControlPropertiesValid(); 
            }
            return true; 
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK