RegularExpressionValidator.EvaluateIsValid Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, zda je hodnota v ovládacím prvku vstupu platná.
protected:
override bool EvaluateIsValid();
protected override bool EvaluateIsValid ();
override this.EvaluateIsValid : unit -> bool
Protected Overrides Function EvaluateIsValid () As Boolean
Návraty
true
pokud je hodnota vstupního ovládacího prvku platná; v opačném případě . false
Příklady
Následující příklad kódu ukazuje, jak přepsat metodu EvaluateIsValid ve vlastním serverovém ovládacím prvku tak, aby vždy kontrolovaly hodnotu proti výrazu pro shodu v RegularExpressionValidator.
Důležité
Tento příklad obsahuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba. Ve výchozím nastavení ASP.NET webové stránky ověřte, že uživatelský vstup neobsahuje skript nebo elementy HTML. Další informace najdete v tématu Přehled zneužití skriptů.
using System.Web;
using System.Security.Permissions;
namespace Samples.AspNet.CS.Controls
{
[AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class CustomRegularExpressionValidatorEvaluateIsValid : System.Web.UI.WebControls.RegularExpressionValidator
{
protected override bool EvaluateIsValid()
{
// Get the control to validate's validation value
string controlValue = GetControlValidationValue(this.ControlToValidate);
// If the value is null or empty, then return true
if (controlValue == null || controlValue.Trim().Length == 0)
{
return true;
}
else
{
// Else try running the Regular Expression against the value
// and see if there is a match.
try
{
System.Text.RegularExpressions.Match regExpMatch = System.Text.RegularExpressions.Regex.Match(controlValue, this.ValidationExpression);
return(regExpMatch.Success && regExpMatch.Index == 0 && regExpMatch.Length == controlValue.Length);
}
catch
{
return true;
}
}
}
}
}
Imports System.Web
Imports System.Security.Permissions
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class CustomRegularExpressionValidatorEvaluateIsValid
Inherits System.Web.UI.WebControls.RegularExpressionValidator
Protected Overrides Function EvaluateIsValid() As Boolean
' Get the control to validate's validation value
Dim controlValue As String = GetControlValidationValue(Me.ControlToValidate)
' If the value is null or empty, then return true
If controlValue Is Nothing OrElse controlValue.Trim().Length = 0 Then
Return True
Else
' Else try running the Regular Expression against the value
' and see if there is a match.
Try
Dim regExpMatch As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(controlValue, Me.ValidationExpression)
Return regExpMatch.Success AndAlso regExpMatch.Index = 0 AndAlso regExpMatch.Length = controlValue.Length
Catch
Return True
End Try
End If
End Function
End Class
End Namespace
Následující příklad kódu ukazuje, jak použít CustomRegularExpressionValidatorEvaluateIsValid
ovládací prvek, definovaný v předchozím příkladu, na stránce Webové formuláře.
<%@ 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 RegularExpressionValidator - EvaluateIsValid - C# Example</title>
<script runat="server">
void Button1_Click(Object sender, EventArgs e)
{
if (Page.IsValid)
{
Label1.Text = "Page is valid.";
}
else
{
Label1.Text = "Page is invalid!";
}
}
</script>
</head>
<body>
<form id="Form1" method="post" runat="server">
<h3>Custom RegularExpressionValidator - EvaluateIsValid - C# Example</h3>
<table style="background-color:#eeeeee; padding:10">
<tr valign="top">
<td colspan="3">
<asp:Label ID="Label1"
Text="Enter a 5 digit zip code"
runat="server"/>
</td>
</tr>
<tr>
<td colspan="3">
<b>Personal Information</b>
</td>
</tr>
<tr>
<td align="right">
Zip Code:
</td>
<td>
<asp:TextBox id="TextBox1" runat="server"/>
</td>
<td>
<aspSample:CustomRegularExpressionValidatorEvaluateIsValid
id="Regularexpressionvalidator1"
runat="server"
ControlToValidate="TextBox1"
ValidationExpression="\d{5}"
ErrorMessage="Zip code must be 5 numeric digits"
Display="Static"
EnableClientScript="False" />
</td>
</tr>
<tr>
<td></td>
<td>
<asp:Button text="Button1"
OnClick="Button1_Click"
runat="server" ID="Button1"/>
</td>
<td></td>
</tr>
</table>
</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 RegularExpressionValidator - EvaluateIsValid - VB.NET Example</title>
<script runat="server">
Sub Button1_Click(sender As Object, e As EventArgs)
If Page.IsValid Then
Label1.Text="Page is valid."
Else
Label1.Text="Page is not valid!"
End If
End Sub
</script>
</head>
<body>
<form id="Form1" method="post" runat="server">
<h3>Custom RegularExpressionValidator - EvaluateIsValid - VB.NET Example</h3>
<table style="background-color:#eeeeee; padding:10">
<tr valign="top">
<td colspan="3">
<asp:Label ID="Label1"
Text="Enter a 5 digit zip code"
runat="server"/>
</td>
</tr>
<tr>
<td colspan="3">
<b>Personal Information</b>
</td>
</tr>
<tr>
<td align="right">
Zip Code:
</td>
<td>
<asp:TextBox id="TextBox1" runat="server"/>
</td>
<td>
<aspSample:CustomRegularExpressionValidatorEvaluateIsValid
id="Regularexpressionvalidator1"
runat="server"
ControlToValidate="TextBox1"
ValidationExpression="\d{5}"
ErrorMessage="Zip code must be 5 numeric digits"
Display="Static"
EnableClientScript="False" />
</td>
</tr>
<tr>
<td></td>
<td>
<asp:Button text="Button1"
OnClick="Button1_Click"
runat="server" ID="Button1"/>
</td>
<td></td>
</tr>
</table>
</form>
</body>
</html>