CustomValidator.EvaluateIsValid 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重写 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