Page.Validate 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í.
Dá pokyn všem ověřovacím ovládacím prvkům, které jsou na stránce zahrnuté, aby ověřily přiřazené informace.
Přetížení
| Name | Description |
|---|---|
| Validate() |
Dá pokyn všem ověřovacím ovládacím prvkům, které jsou na stránce zahrnuté, aby ověřily přiřazené informace. |
| Validate(String) |
Dá pokyn ověřovacím ovládacím prvkům v zadané ověřovací skupině, aby ověřil jejich přiřazené informace. |
Validate()
Dá pokyn všem ověřovacím ovládacím prvkům, které jsou na stránce zahrnuté, aby ověřily přiřazené informace.
public:
virtual void Validate();
public virtual void Validate();
abstract member Validate : unit -> unit
override this.Validate : unit -> unit
Public Overridable Sub Validate ()
Příklady
Následující příklad kódu volá metodu Validate na stránce ve scénáři s několika definovanými různými ověřovacími skupinami.
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ěřují, že vstup uživatele neobsahuje skripty ani elementy HTML. Další informace naleznete v tématu Přehled zneužití skriptů.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button_Click(object sender, EventArgs e)
{
switch (((Button)sender).ID)
{
case "Button1":
if (TextBoxValidator1.IsValid)
{
Label1.Text = "TextBox validates.";
}
else
{
Label1.Text = "";
Label4.Text = "";
}
break;
case "Button2":
// Must explicitly cause Validate here because
// Button2 has CausesValidation set to false.
Validate("Group2");
if (CustomValidator.IsValid)
{
Label2.Text = "CheckBox validates.";
}
else
{
Label2.Text = "";
Label4.Text = "";
}
break;
default:
Label1.Text = "";
Label2.Text = "";
break;
}
}
// Custom validator for check box.
protected void CustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = (CheckBox1.Checked == true);
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack && Context.Request.Form["__EVENTTARGET"] == "TextBox2")
{
// Handle AutoPostBack TextBox.
Validate("Group3");
if (Page.IsValid)
{
Label3.Text = "AutoPostBack TextBox validates.";
}
else
{
Label3.Text = "";
Label4.Text = "";
}
}
}
protected void Button3_Click(object sender, EventArgs e)
{
Validate();
if (Page.IsValid)
Label4.Text = "All controls valid.";
else
{
Label1.Text = "";
Label2.Text = "";
Label3.Text = "";
Label4.Text = "";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page Validate</title>
</head>
<body>
<form id="form1" runat="server">
<div>
TextBox
<asp:TextBox ID="TextBox1" ValidationGroup="Group1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator Display="Static" ID="TextBoxValidator1" ValidationGroup="Group1" runat="server" ControlToValidate="TextBox1" ErrorMessage="(please enter some text)" EnableClientScript="False"></asp:RequiredFieldValidator>
<br />
CheckBox
<asp:CheckBox ID="CheckBox1" ValidationGroup="Group2" runat="server" />
<asp:CustomValidator ID="CustomValidator" ValidationGroup="Group2" runat="server" Text="(this option required)" OnServerValidate="CustomValidator_ServerValidate" EnableClientScript="False"></asp:CustomValidator>
<br />
<asp:Button ID="Button1" ValidationGroup="Group1" CausesValidation="true" runat="server" Text="Validate Group1 Controls" OnClick="Button_Click" />
<asp:Label ID="Label1" runat="server"></asp:Label>
<br />
<asp:Button ID="Button2" ValidationGroup="Group2" CausesValidation="false" runat="server" Text="Validate Group2 Controls" OnClick="Button_Click" />
<asp:Label ID="Label2" runat="server"></asp:Label>
<br />
<br />
AutoPostBack TextBox
<asp:TextBox AutoPostBack="true" ID="TextBox2" ValidationGroup="Group3" runat="server" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="TextBoxValidator2" ValidationGroup="Group3" runat="server" ControlToValidate="TextBox2" ErrorMessage="(please enter some text)" EnableClientScript="False"></asp:RequiredFieldValidator>
<asp:Label ID="Label3" runat="server"></asp:Label>
<br />
<br />
<asp:Button ID="Button3" CausesValidation="true" runat="server" Text="Validate All Controls" OnClick="Button3_Click" />
<asp:Label ID="Label4" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Select Case CType(sender, Button).ID
Case "Button1"
If TextBoxValidator1.IsValid Then
Label1.Text = "TextBox validates."
Else
Label1.Text = ""
Label4.Text = ""
End If
Case "Button2"
' Must explicitly cause Validate here because
' Button2 has CausesValidation set to false.
Validate("Group2")
If CustomValidator.IsValid Then
Label2.Text = "CheckBox validates."
Else
Label2.Text = ""
Label4.Text = ""
End If
Case Else
Label1.Text = ""
Label2.Text = ""
End Select
End Sub
Protected Sub CustomValidator_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
args.IsValid = (CheckBox1.Checked)
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If (IsPostBack) Then
' Handle AutoPostBack TextBox.
Validate("Group3")
If (Page.IsValid) Then
Label3.Text = "AutoPostBack TextBox validates."
Else
Label3.Text = ""
Label4.Text = ""
End If
End If
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Validate()
If (Page.IsValid) Then
Label4.Text = "All controls valid."
Else
Label1.Text = ""
Label2.Text = ""
Label3.Text = ""
Label4.Text = ""
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page Validate</title>
</head>
<body>
<form id="form1" runat="server">
<div>
TextBox
<asp:TextBox ID="TextBox1" ValidationGroup="Group1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator Display="Static" ID="TextBoxValidator1" ValidationGroup="Group1" runat="server" ControlToValidate="TextBox1" ErrorMessage="(please enter some text)" EnableClientScript="False"></asp:RequiredFieldValidator>
<br />
CheckBox
<asp:CheckBox ID="CheckBox1" ValidationGroup="Group2" runat="server" />
<asp:CustomValidator ID="CustomValidator" ValidationGroup="Group2" runat="server" Text="(this option required)" OnServerValidate="CustomValidator_ServerValidate" EnableClientScript="False"></asp:CustomValidator>
<br />
<asp:Button ID="Button1" ValidationGroup="Group1" CausesValidation="true" runat="server" Text="Validate Group1 Controls" OnClick="Button_Click" />
<asp:Label ID="Label1" runat="server"></asp:Label>
<br />
<asp:Button ID="Button2" ValidationGroup="Group2" CausesValidation="false" runat="server" Text="Validate Group2 Controls" OnClick="Button_Click" />
<asp:Label ID="Label2" runat="server"></asp:Label>
<br />
<br />
AutoPostBack TextBox
<asp:TextBox AutoPostBack="true" ID="TextBox2" ValidationGroup="Group3" runat="server" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="TextBoxValidator2" ValidationGroup="Group3" runat="server" ControlToValidate="TextBox2" ErrorMessage="(please enter some text)" EnableClientScript="False"></asp:RequiredFieldValidator>
<asp:Label ID="Label3" runat="server"></asp:Label>
<br />
<br />
<asp:Button ID="Button3" CausesValidation="true" runat="server" Text="Validate All Controls" OnClick="Button3_Click" />
<asp:Label ID="Label4" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
Poznámky
Tato metoda se vyvolá, když uživatel klikne na libovolný ASP.NET server ovládací prvek, který má CausesValidation vlastnost nastavenou na true, což je výchozí. Patří sem Buttonovládací prvky , a ImageButtonLinkButton webového serveru, HtmlInputButtonovládací prvky serveru , HtmlInputImage, a HtmlButton HTML a ovládací prvky, které mohou automaticky publikovat zpět na server, například TextBox, CheckBox, ListControla BulletedList ovládací prvky.
Chcete-li zakázat ověřování libovolného ovládacího prvku tlačítka na stránce, nastavte vlastnost ovládacího prvku CausesValidation tlačítka na falsehodnotu .
Při vyvolání této metody iteruje prostřednictvím ověřovacích ovládacích prvků obsažených v objektu ValidatorCollection přidruženém Page.Validators k vlastnosti a vyvolá ověřovací logiku pro každý ověřovací ovládací prvek v aktuální ověřovací skupině. Ověřovací skupina je určena ovládacím prvku, který stránku publikoval na server. Pokud není zadána žádná skupina ověření, nebude použita žádná ověřovací skupina.
Poznámka:
Chování ověření stránky se změnilo. V ASP.NET 2.0 už ovládací prvky metodu Page.Validate() nevolají; místo toho metodu Page.Validate(String) používají. Pokud použijete metodu Page.Validate() na stránce ASP.NET 2.0, skupiny ověřování se ignorují a ověří se všechny ovládací prvky.
Poznámky pro dědice
Metoda Validate() není používána ASP.NET 2.0. Pokud používáte ASP.NET 2.0, přepište metodu Validate(String) pro změnu chování ověření stránky.
Viz také
Platí pro
Validate(String)
Dá pokyn ověřovacím ovládacím prvkům v zadané ověřovací skupině, aby ověřil jejich přiřazené informace.
public:
virtual void Validate(System::String ^ validationGroup);
public virtual void Validate(string validationGroup);
abstract member Validate : string -> unit
override this.Validate : string -> unit
Public Overridable Sub Validate (validationGroup As String)
Parametry
- validationGroup
- String
Název ověřovací skupiny ovládacích prvků, které chcete ověřit.
Příklady
Následující příklad kódu volá metodu Validate na stránce ve scénáři s několika definovanými různými ověřovacími skupinami.
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ěřují, že vstup uživatele neobsahuje skripty ani elementy HTML. Další informace naleznete v tématu Přehled zneužití skriptů.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button_Click(object sender, EventArgs e)
{
switch (((Button)sender).ID)
{
case "Button1":
if (TextBoxValidator1.IsValid)
{
Label1.Text = "TextBox validates.";
}
else
{
Label1.Text = "";
Label4.Text = "";
}
break;
case "Button2":
// Must explicitly cause Validate here because
// Button2 has CausesValidation set to false.
Validate("Group2");
if (CustomValidator.IsValid)
{
Label2.Text = "CheckBox validates.";
}
else
{
Label2.Text = "";
Label4.Text = "";
}
break;
default:
Label1.Text = "";
Label2.Text = "";
break;
}
}
// Custom validator for check box.
protected void CustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = (CheckBox1.Checked == true);
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack && Context.Request.Form["__EVENTTARGET"] == "TextBox2")
{
// Handle AutoPostBack TextBox.
Validate("Group3");
if (Page.IsValid)
{
Label3.Text = "AutoPostBack TextBox validates.";
}
else
{
Label3.Text = "";
Label4.Text = "";
}
}
}
protected void Button3_Click(object sender, EventArgs e)
{
Validate();
if (Page.IsValid)
Label4.Text = "All controls valid.";
else
{
Label1.Text = "";
Label2.Text = "";
Label3.Text = "";
Label4.Text = "";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page Validate</title>
</head>
<body>
<form id="form1" runat="server">
<div>
TextBox
<asp:TextBox ID="TextBox1" ValidationGroup="Group1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator Display="Static" ID="TextBoxValidator1" ValidationGroup="Group1" runat="server" ControlToValidate="TextBox1" ErrorMessage="(please enter some text)" EnableClientScript="False"></asp:RequiredFieldValidator>
<br />
CheckBox
<asp:CheckBox ID="CheckBox1" ValidationGroup="Group2" runat="server" />
<asp:CustomValidator ID="CustomValidator" ValidationGroup="Group2" runat="server" Text="(this option required)" OnServerValidate="CustomValidator_ServerValidate" EnableClientScript="False"></asp:CustomValidator>
<br />
<asp:Button ID="Button1" ValidationGroup="Group1" CausesValidation="true" runat="server" Text="Validate Group1 Controls" OnClick="Button_Click" />
<asp:Label ID="Label1" runat="server"></asp:Label>
<br />
<asp:Button ID="Button2" ValidationGroup="Group2" CausesValidation="false" runat="server" Text="Validate Group2 Controls" OnClick="Button_Click" />
<asp:Label ID="Label2" runat="server"></asp:Label>
<br />
<br />
AutoPostBack TextBox
<asp:TextBox AutoPostBack="true" ID="TextBox2" ValidationGroup="Group3" runat="server" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="TextBoxValidator2" ValidationGroup="Group3" runat="server" ControlToValidate="TextBox2" ErrorMessage="(please enter some text)" EnableClientScript="False"></asp:RequiredFieldValidator>
<asp:Label ID="Label3" runat="server"></asp:Label>
<br />
<br />
<asp:Button ID="Button3" CausesValidation="true" runat="server" Text="Validate All Controls" OnClick="Button3_Click" />
<asp:Label ID="Label4" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Select Case CType(sender, Button).ID
Case "Button1"
If TextBoxValidator1.IsValid Then
Label1.Text = "TextBox validates."
Else
Label1.Text = ""
Label4.Text = ""
End If
Case "Button2"
' Must explicitly cause Validate here because
' Button2 has CausesValidation set to false.
Validate("Group2")
If CustomValidator.IsValid Then
Label2.Text = "CheckBox validates."
Else
Label2.Text = ""
Label4.Text = ""
End If
Case Else
Label1.Text = ""
Label2.Text = ""
End Select
End Sub
Protected Sub CustomValidator_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
args.IsValid = (CheckBox1.Checked)
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If (IsPostBack) Then
' Handle AutoPostBack TextBox.
Validate("Group3")
If (Page.IsValid) Then
Label3.Text = "AutoPostBack TextBox validates."
Else
Label3.Text = ""
Label4.Text = ""
End If
End If
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Validate()
If (Page.IsValid) Then
Label4.Text = "All controls valid."
Else
Label1.Text = ""
Label2.Text = ""
Label3.Text = ""
Label4.Text = ""
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Page Validate</title>
</head>
<body>
<form id="form1" runat="server">
<div>
TextBox
<asp:TextBox ID="TextBox1" ValidationGroup="Group1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator Display="Static" ID="TextBoxValidator1" ValidationGroup="Group1" runat="server" ControlToValidate="TextBox1" ErrorMessage="(please enter some text)" EnableClientScript="False"></asp:RequiredFieldValidator>
<br />
CheckBox
<asp:CheckBox ID="CheckBox1" ValidationGroup="Group2" runat="server" />
<asp:CustomValidator ID="CustomValidator" ValidationGroup="Group2" runat="server" Text="(this option required)" OnServerValidate="CustomValidator_ServerValidate" EnableClientScript="False"></asp:CustomValidator>
<br />
<asp:Button ID="Button1" ValidationGroup="Group1" CausesValidation="true" runat="server" Text="Validate Group1 Controls" OnClick="Button_Click" />
<asp:Label ID="Label1" runat="server"></asp:Label>
<br />
<asp:Button ID="Button2" ValidationGroup="Group2" CausesValidation="false" runat="server" Text="Validate Group2 Controls" OnClick="Button_Click" />
<asp:Label ID="Label2" runat="server"></asp:Label>
<br />
<br />
AutoPostBack TextBox
<asp:TextBox AutoPostBack="true" ID="TextBox2" ValidationGroup="Group3" runat="server" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="TextBoxValidator2" ValidationGroup="Group3" runat="server" ControlToValidate="TextBox2" ErrorMessage="(please enter some text)" EnableClientScript="False"></asp:RequiredFieldValidator>
<asp:Label ID="Label3" runat="server"></asp:Label>
<br />
<br />
<asp:Button ID="Button3" CausesValidation="true" runat="server" Text="Validate All Controls" OnClick="Button3_Click" />
<asp:Label ID="Label4" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
Poznámky
Tato metoda se vyvolá, když uživatel klikne na libovolný ASP.NET server ovládací prvek, který má CausesValidation vlastnost nastavenou na true, což je výchozí. Patří sem Buttonovládací prvky , a ImageButtonLinkButton webového serveru, HtmlInputButtonovládací prvky serveru , HtmlInputImage, a HtmlButton HTML a ovládací prvky, které mohou automaticky publikovat zpět na server, například TextBox, CheckBox, ListControla BulletedList ovládací prvky.
Chcete-li zakázat ověřování libovolného ovládacího prvku tlačítka na stránce, nastavte vlastnost ovládacího prvku CausesValidation tlačítka na falsehodnotu .
Metoda Validate ověří zadanou skupinu ověření. Po volání Validate metody v ověřovací skupině metoda vrátí true pouze v případě, IsValid že zadaná ověřovací skupina i skupina ověření ovládacího prvku, který způsobil, že stránka byla odeslána na server jsou platné.