Поделиться через


CompareValidator.EvaluateIsValid Метод

Определение

При переопределении в производном классе данный метод содержит код, чтобы определить, является ли допустимым значение во входном элементе управления.

protected:
 override bool EvaluateIsValid();
protected override bool EvaluateIsValid ();
override this.EvaluateIsValid : unit -> bool
Protected Overrides Function EvaluateIsValid () As Boolean

Возвращаемое значение

true, если значение во входном элементе управления является допустимым; в противном случае — false.

Примеры

В следующем примере кода показано, как переопределить EvaluateIsValid метод в пользовательском серверном элементе управления, чтобы он всегда возвращал true , если значения двух указанных элементов управления совпадают, и false в противном случае .

Важно!

В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах ASP.NET, проверяются на наличие скриптов и HTML-элементов. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet" Assembly="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!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 CompareValidator - EvaluateIsValid - C# Example</title>
    <script runat="server">
      void Page_Load(Object sender, EventArgs e) 
      {
        // Run the Page Validate method in order to force 
        // the CompareValidate to show it's error message.
        Page.Validate();
      }
    </script>
    </head>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom CompareValidator - EvaluateIsValid - C# Example</h3>
            
      <asp:TextBox id="TextBox1" runat="server">123</asp:TextBox><br />
      
      <asp:TextBox id="TextBox2" runat="server">123</asp:TextBox>
      
      <aspSample:CustomCompareValidatorEvaluateIsValid 
        id="CompareValidator1" 
        runat="server" 
        ErrorMessage="Value in TextBox2 does not match value in TextBox1." 
        Display="Dynamic" 
        ControlToCompare="TextBox2" 
        ControlToValidate="TextBox1" /><br />
      
      <asp:Button id="Button1" runat="server" Text="Button" />
       
       </form>
    </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %>
<%@ Page language="VB" %>
<!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 CompareValidator - EvaluateIsValid - VB.NET Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">
      <h3>Custom CompareValidator - EvaluateIsValid - C# Example</h3>
            <asp:TextBox id="TextBox1" runat="server">123</asp:TextBox><br />
            <asp:TextBox id="TextBox2" runat="server">123</asp:TextBox>
            <aspSample:CustomCompareValidatorEvaluateIsValid
             id="CompareValidator1" runat="server"
             ErrorMessage="Value in TextBox2 does not match value in TextBox1."
             Display="Dynamic" ControlToCompare="TextBox2" ControlToValidate="TextBox1" /><br />
             <asp:Button id="Button1" runat="server" Text="Button" />
    </form>
  </body>
</html>
using System.Web;
using System.Security.Permissions;

namespace Samples.AspNet
{
    [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
    public sealed class CustomCompareValidatorEvaluateIsValid : System.Web.UI.WebControls.CompareValidator
    {
    protected override bool EvaluateIsValid()
    {
      // Get the values from the two controls
      string controlToValidateValue = this.GetControlValidationValue(this.ControlToValidate);
      string controlToCompareValue = this.GetControlValidationValue(this.ControlToCompare);

      // If the values are the same, return true, else return false.
      if (System.String.Compare(controlToValidateValue, 0, controlToCompareValue, 0, controlToCompareValue.Length, false, System.Globalization.CultureInfo.InvariantCulture) == 0) 
      {
        return true;
      }
      else
      {
        return false;
      }
    }
  }
}
Imports System.Web
Imports System.Security.Permissions
Namespace Samples.AspNet.VB.Controls
    <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public NotInheritable Class CustomCompareValidatorEvaluateIsValid
        Inherits System.Web.UI.WebControls.CompareValidator

        Protected Overrides Function EvaluateIsValid() As Boolean

            ' Get the values from the two controls
            Dim controlToValidateValue As String = Me.GetControlValidationValue(Me.ControlToValidate)
            Dim controlToCompareValue As String = Me.GetControlValidationValue(Me.ControlToCompare)

            ' If the values are the same, return true, else return false.
            If (System.String.Compare(controlToValidateValue, 0, controlToCompareValue, 0, controlToCompareValue.Length, False, System.Globalization.CultureInfo.InvariantCulture) = 0) Then
                Return True
            Else
                Return False
            End If
        End Function
    End Class
End Namespace

Применяется к