CustomValidator.EvaluateIsValid Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Переопределяет метод EvaluateIsValid().
protected:
override bool EvaluateIsValid();
protected override bool EvaluateIsValid ();
override this.EvaluateIsValid : unit -> bool
Protected Overrides Function EvaluateIsValid () As Boolean
Возвращаемое значение
true
, если значение во входном элементе управления является допустимым; в противном случае — false
.
Примеры
В следующем примере кода показано, как переопределить EvaluateIsValid метод в пользовательском серверном элементе управления.
Важно!
В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах ASP.NET, проверяются на наличие скриптов и HTML-элементов. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %>
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Custom CustomValidator - EvaluateIsValid - C# Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<h3>Custom CustomValidator - EvaluateIsValid - C# Example</h3>
<asp:Label id="Label1" runat="server" Text="Enter an even number:"
AssociatedControlID="TextBox1" /><br />
<asp:TextBox id="TextBox1" runat="server" />
<aspSample:CustomCustomValidatorEvaluateIsValid
id="Customvalidator1"
runat="server"
ControlToValidate="TextBox1"
Display="Static"
ErrorMessage="Not an even number!" /><br /><br />
<asp:Button id="Button1" runat="server" Text="Validate" />
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Custom CustomValidator - EvaluateIsValid - VB.NET Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<h3>Custom CustomValidator - EvaluateIsValid - VB.NET Example</h3>
<asp:Label id="Label1" runat="server" Text="Enter an even number:"
AssociatedControlID="TextBox1" /><br />
<asp:TextBox id="TextBox1" runat="server" />
<aspSample:CustomCustomValidatorEvaluateIsValid id="Customvalidator1" runat="server" ControlToValidate="TextBox1" Display="Static" ErrorMessage="Not an even number!" /><br /><br />
<asp:Button id="Button1" runat="server" Text="Validate" />
</form>
</body>
</html>
using System.Web;
using System.Security.Permissions;
namespace Samples.AspNet.CS.Controls
{
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class CustomCustomValidatorEvaluateIsValid : System.Web.UI.WebControls.CustomValidator
{
protected override bool EvaluateIsValid()
{
bool isValid = false;
// Get the name of the control to validate.
string controlToValidate = this.ControlToValidate;
if (controlToValidate.Length > 0)
{
// Get the control's value.
string controlValue = GetControlValidationValue(controlToValidate);
// If the value is not null and not empty, test whether
// check if the value entered into the text box is even,
// if so return true, else return false in all other cases.
if ((controlValue != null) && (!controlValue.Trim().Equals(System.String.Empty)))
{
try
{
int i = int.Parse(controlValue);
isValid = ((i%2) == 0);
}
catch
{}
}
}
return isValid;
}
}
}
Imports System.Web
Imports System.Security.Permissions
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class CustomCustomValidatorEvaluateIsValid
Inherits System.Web.UI.WebControls.CustomValidator
Protected Overrides Function EvaluateIsValid() As Boolean
Dim isValid As Boolean = False
' Get the name of the control to validate.
Dim controlToValidate As String = Me.ControlToValidate
If controlToValidate.Length > 0 Then
' Get the control's value.
Dim controlValue As String = GetControlValidationValue(controlToValidate)
' If the value is not null and not empty, test whether
' check if the value entered into the text box is even,
' if so return true, else return false in all other cases.
If Not (controlValue Is Nothing) AndAlso _
Not controlValue.Trim().Equals(System.String.Empty) Then
Try
Dim i As Integer = Integer.Parse(controlValue)
isValid = ((i Mod 2) = 0)
Catch
End Try
End If
End If
Return isValid
End Function
End Class
End Namespace