You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@@ -0,0 +1,127 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="CustomValidator.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
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
|
||||
*/
|
||||
/// <include file='doc\CustomValidator.uex' path='docs/doc[@for="CustomValidator"]/*' />
|
||||
[
|
||||
DefaultEvent("ServerValidate"),
|
||||
ToolboxData("<{0}:CustomValidator runat=\"server\" ErrorMessage=\"CustomValidator\"></{0}: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();
|
||||
|
||||
/// <include file='doc\CustomValidator.uex' path='docs/doc[@for="CustomValidator.CreateWebValidator"]/*' />
|
||||
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.
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// <include file='doc\CustomValidator.uex' path='docs/doc[@for="CustomValidator.ServerValidate"]/*' />
|
||||
[
|
||||
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
|
||||
/// <include file='doc\CustomValidator.uex' path='docs/doc[@for="CustomValidator.OnServerValidate"]/*' />
|
||||
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);
|
||||
}
|
||||
|
||||
/// <include file='doc\CustomValidator.uex' path='docs/doc[@for="CustomValidator.EvaluateIsValid"]/*' />
|
||||
protected override bool EvaluateIsValid()
|
||||
{
|
||||
return EvaluateIsValidInternal();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// Helper function adopted from WebForms CustomValidator
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// <include file='doc\CustomValidator.uex' path='docs/doc[@for="CustomValidator.ControlPropertiesValid"]/*' />
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user