다음을 통해 공유


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 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 Script Exploits Overview를 참조하세요.

<%@ 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

적용 대상