CustomValidator イベント

名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) |
![]() | ServerValidate | ControlToValidate プロパティの値が CustomValidator によって検証されたときに発生します。 |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |

CustomValidator イベント

名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) |
![]() | ServerValidate | サーバーで検証が実行されると発生します。 |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |

CustomValidator クラス
アセンブリ: System.Web.Mobile (system.web.mobile.dll 内)


このクラスの動作は、System.Web.UI.WebControls.CustomValidator Web サーバー コントロールの動作と同じです。開発者独自の共通言語ランタイム デリゲートを検証用に選択できます。
既定では、サーバーにフォームが送信されると、フォーム上の Command コントロールは、検証を実行するための検証イベントをフォーム上で発生させます。検証を自動的に実行しないようにするには、Command コントロール上の CausesValidation プロパティを false に設定します。

ユーザーが TextBox コントロールに入力した値が偶数かどうかをチェックする例を次に示します。値が偶数である場合、ページは有効と見なされます。値が偶数でない場合、ページは無効と見なされ、CustomValidator によって ErrorMessage プロパティが表示されます。
![]() |
---|
次のコード サンプルはシングルファイル コード モデルを使用しており、分離コード ファイルに直接コピーされた場合は正常に動作しない可能性があります。このコード サンプルは、拡張子が .aspx の空のテキスト ファイルにコピーする必要があります。Web フォームのコード モデルの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。 |
<%@ Page Language="VB" Inherits="System.Web.UI.MobileControls.MobilePage" %> <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %> <script runat="server"> ' If the page validates, go to page 2 Protected Sub Submit_Click(ByVal sender As Object, ByVal e As EventArgs) If (Page.IsValid) Then ActiveForm = Form2 End If End Sub ' Validate whether the number is even Private Sub ServerValidate(ByVal source As Object, _ ByVal args As ServerValidateEventArgs) ' Convert the text to a number Dim num As Integer Integer.TryParse(numberBox.Text, num) ' Test for an even number If (num > 0) Then args.IsValid = ((num Mod 2) = 0) Else args.IsValid = False End If End Sub </script> <html > <body> <mobile:form id="Form1" runat="server"> <mobile:Label ID="Label1" runat="server"> Please enter an even number greater than zero. </mobile:Label> <mobile:TextBox ID="numberBox" Runat="server" Numeric="true" MaxLength="2" /> <mobile:CustomValidator ID="CustomValidator1" ControlToValidate="numberBox" OnServerValidate="ServerValidate" runat="server"> Your number is not an even number. </mobile:CustomValidator> <mobile:Command ID="Command1" runat="server" OnClick="Submit_Click"> Submit </mobile:Command> </mobile:form> <mobile:Form id="Form2" runat="server"> <mobile:Label ID="Label2" runat="server"> Your number is an even number. </mobile:Label> </mobile:Form> </body> </html>
<%@ Page Language="C#" Inherits="System.Web.UI.MobileControls.MobilePage" %> <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %> <script runat="server"> // If the page validates, go to page 2 protected void Submit_Click(Object sender, EventArgs e) { if (Page.IsValid) { ActiveForm = Form2; } } // Validate whether the number is even private void ServerValidate(object source, ServerValidateEventArgs args) { // Convert the text to a number int num; Int32.TryParse(numberBox.Text, out num); // Test for an even number if (num > 0) args.IsValid = ((num % 2) == 0); else args.IsValid = false; } </script> <html > <body> <mobile:form id="Form1" runat="server"> <mobile:Label ID="Label1" runat="server"> Please enter an even number greater than zero. </mobile:Label> <mobile:TextBox ID="numberBox" Runat="server" Numeric="true" MaxLength="2" /> <mobile:CustomValidator ID="CustomValidator1" ControlToValidate="numberBox" OnServerValidate="ServerValidate" runat="server"> Your number is not an even number. </mobile:CustomValidator> <mobile:Command ID="Command1" runat="server" OnClick="Submit_Click"> Submit </mobile:Command> </mobile:form> <mobile:Form id="Form2" runat="server"> <mobile:Label ID="Label2" runat="server"> Your number is an even number. </mobile:Label> </mobile:Form> </body> </html>


System.Web.UI.Control
System.Web.UI.MobileControls.MobileControl
System.Web.UI.MobileControls.TextControl
System.Web.UI.MobileControls.BaseValidator
System.Web.UI.MobileControls.CustomValidator


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CustomValidator クラス
アセンブリ: System.Web (system.web.dll 内)


CustomValidator コントロールを使用して、入力コントロールのユーザー定義検証関数を提供します。CustomValidator コントロールは検証対象の入力コントロールとは別のコントロールで、検証メッセージを表示する位置を制御できます。
検証コントロールは常にサーバー上で検証を実行します。検証コントロールはクライアント側でも実装でき、スクリプト対応ブラウザ (Microsoft Internet Explorer 4.0 以降など) ではクライアント上で検証を実行できます。クライアント側の検証で、ユーザーによる入力をサーバーに送信する前にチェックすることによって、検証プロセスが強化されます。これによりフォームの送信前にクライアントでエラーを検出できるため、サーバー側での検証に必要な情報のラウンド トリップを避けることができます。
サーバー側検証関数を作成するには、検証を実行する ServerValidate イベント用のハンドラを作成します。検証対象の入力コントロールの文字列には、パラメータとしてイベント ハンドラに渡された ServerValidateEventArgs オブジェクトの Value プロパティを使用してアクセスできます。検証結果は、その後 ServerValidateEventArgs オブジェクトの IsValid プロパティに格納されます。
クライアント側検証関数を作成するには、最初に前のサーバー側検証関数を追加します。次に ASP.NET (.aspx) ページにクライアント側検証スクリプト関数を追加します。
VBScript (Visual Basic Scripting Edition) を使用している場合、関数は次の形式にする必要があります。
JScript を使用している場合、関数は次の形式にする必要があります。
ClientValidationFunction プロパティを使用して、CustomValidator コントロールに関連付けられているクライアント側検証スクリプト関数の名前を指定します。スクリプト関数はクライアントで実行されるため、対象のブラウザがサポートする言語 (VBScript や JScript など) を使用する必要があります。
サーバー側の検証と同様、検証対象の入力コントロールの文字列には arguments パラメータの Value プロパティを使用してアクセスします。arguments パラメータの IsValid プロパティを設定することにより検証結果を返します。
![]() |
---|
入力コントロールが空の場合、検証関数は呼び出されず、検証は成功します。RequiredFieldValidator コントロールを使用すると、データを入力コントロールに入力するようにユーザーに要求します。 |
ControlToValidate プロパティを設定せずに CustomValidator コントロールを使用できます。これは、通常、複数の入力コントロールを検証するとき、または CheckBox コントロールなどの検証コントロールを使用できない入力コントロールを検証するときに実行します。この場合、ServerValidate イベントのイベント ハンドラとクライアント側検証関数に渡される arguments パラメータの Value プロパティには、常に空の文字列 ("") が含まれます。ただし、サーバーとクライアントの両方の有効性を確認するために、これらの検証関数が必要に応じて呼び出される場合があります。検証する値にアクセスするには、検証対象の入力コントロールをプログラムにより参照し、適切なプロパティから値を取得します。たとえば、サーバーの CheckBox コントロールを検証する場合には、検証コントロールの ControlToValidate プロパティは設定せず、ServerValidate イベントのハンドラのために次のコードを使用します。
Sub ServerValidation (source As object, args As ServerValidateEventArgs) args.IsValid = (CheckBox1.Checked = True) End Sub
void ServerValidation (object source, ServerValidateEventArgs args) { args.IsValid = (CheckBox1.Checked == true); }
検証コントロールの詳細については、「BaseValidator」を参照してください。
ユーザー補助このコントロールに既定でレンダリングされるマークアップは、Web Content Accessibility Guidelines (WCAG) 1.0 の優先度 1 ガイドラインなどのユーザー補助に関する標準に適合しない可能性があります。このコントロールのユーザー補助サポートの詳細については、「ASP.NET コントロールとユーザー補助」を参照してください。

サーバー側の CustomValidator コントロールを作成する方法のコード例を次に示します。
<%@ Page Language="VB" AutoEventWireup="True" %> <html> <head> <script runat="server"> Sub ValidateBtn_OnClick(sender As Object, e As EventArgs) ' Display whether the page passed validation. If Page.IsValid Then Message.Text = "Page is valid." Else Message.Text = "Page is not valid!" End If End Sub Sub ServerValidation(source As Object, args As ServerValidateEventArgs) Try ' Test whether the value entered into the text box is even. Dim num As Integer = Integer.Parse(args.Value) args.IsValid = ((num mod 2) = 0) Catch ex As Exception args.IsValid = false End Try End Sub </script> </head> <body> <form runat="server"> <h3>CustomValidator ServerValidate Example</h3> <asp:Label id="Message" Text="Enter an even number:" Font-Name="Verdana" Font-Size="10pt" runat="server" /> <p> <asp:TextBox id="Text1" runat="server" /> <asp:CustomValidator id="CustomValidator1" ControlToValidate="Text1" Display="Static" ErrorMessage="Not an even number!" ForeColor="green" Font-Name="verdana" Font-Size="10pt" OnServerValidate="ServerValidation" runat="server"/> <p> <asp:Button id="Button1" Text="Validate" OnClick="ValidateBtn_OnClick" runat="server"/> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <html> <head> <script runat="server"> void ValidateBtn_OnClick(object sender, EventArgs e) { // Display whether the page passed validation. if (Page.IsValid) { Message.Text = "Page is valid."; } else { Message.Text = "Page is not valid!"; } } void ServerValidation(object source, ServerValidateEventArgs args) { try { // Test whether the value entered into the text box is even. int i = int.Parse(args.Value); args.IsValid = ((i%2) == 0); } catch(Exception ex) { args.IsValid = false; } } </script> </head> <body> <form runat="server"> <h3>CustomValidator ServerValidate Example</h3> <asp:Label id="Message" Text="Enter an even number:" Font-Name="Verdana" Font-Size="10pt" runat="server"/> <p> <asp:TextBox id="Text1" runat="server" /> <asp:CustomValidator id="CustomValidator1" ControlToValidate="Text1" Display="Static" ErrorMessage="Not an even number!" ForeColor="green" Font-Name="verdana" Font-Size="10pt" OnServerValidate="ServerValidation" runat="server"/> <p> <asp:Button id="Button1" Text="Validate" OnClick="ValidateBtn_OnClick" runat="server"/> </form> </body> </html>
クライアント側の CustomValidator コントロールを作成する方法のコード例を次に示します。
<%@ Page Language="VB" AutoEventWireup="True" %> <html> <head> <script runat="server"> Sub ValidateBtn_OnClick(sender As Object, e As EventArgs) ' Display whether the page passed validation. If Page.IsValid Then Message.Text = "Page is valid." Else Message.Text = "Page is not valid!" End If End Sub Sub ServerValidation(source As Object, args As ServerValidateEventArgs) Try ' Test whether the value entered into the text box is even. Dim num As Integer = Integer.Parse(args.Value) args.IsValid = ((num mod 2) = 0) Catch ex As Exception args.IsValid = false End Try End Sub </script> </head> <body> <form runat="server"> <h3>CustomValidator ServerValidate Example</h3> <asp:Label id="Message" Text="Enter an even number:" Font-Name="Verdana" Font-Size="10pt" runat="server"/> <p> <asp:TextBox id="Text1" runat="server" /> <asp:CustomValidator id="CustomValidator1" ControlToValidate="Text1" ClientValidationFunction="ClientValidate" OnServerValidate="ServerValidation" Display="Static" ErrorMessage="Not an even number!" ForeColor="green" Font-Name="verdana" Font-Size="10pt" runat="server"/> <p> <asp:Button id="Button1" Text="Validate" OnClick="ValidateBtn_OnClick" runat="server"/> </form> </body> </html> <script language="vbscript"> <!-- Sub ClientValidate(source, arguments) If (arguments.Value mod 2) = 0 Then arguments.IsValid=true Else arguments.IsValid=false End If End Sub ' --> </script>
<%@ Page Language="C#" AutoEventWireup="True" %> <html> <head> <script runat="server"> void ValidateBtn_OnClick(object sender, EventArgs e) { // Display whether the page passed validation. if (Page.IsValid) { Message.Text = "Page is valid."; } else { Message.Text = "Page is not valid!"; } } void ServerValidation(object source, ServerValidateEventArgs args) { try { // Test whether the value entered into the text box is even. int i = int.Parse(args.Value); args.IsValid = ((i%2) == 0); } catch(Exception ex) { args.IsValid = false; } } </script> </head> <body> <form runat="server"> <h3>CustomValidator ServerValidate Example</h3> <asp:Label id="Message" Text="Enter an even number:" Font-Name="Verdana" Font-Size="10pt" runat="server"/> <p> <asp:TextBox id="Text1" runat="server" /> <asp:CustomValidator id="CustomValidator1" ControlToValidate="Text1" ClientValidationFunction="ClientValidate" OnServerValidate="ServerValidation" Display="Static" ErrorMessage="Not an even number!" ForeColor="green" Font-Name="verdana" Font-Size="10pt" runat="server"/> <p> <asp:Button id="Button1" Text="Validate" OnClick="ValidateBtn_OnClick" runat="server"/> </form> </body> </html> <script language="vbscript"> <!-- Sub ClientValidate(source, arguments) If (arguments.Value mod 2) = 0 Then arguments.IsValid=true Else arguments.IsValid=false End If End Sub ' --> </script>


System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.Label
System.Web.UI.WebControls.BaseValidator
System.Web.UI.WebControls.CustomValidator


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CustomValidator コンストラクタ
アセンブリ: System.Web.Mobile (system.web.mobile.dll 内)


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CustomValidator コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CustomValidator プロパティ



CustomValidator プロパティ



CustomValidator メソッド



CustomValidator メソッド



CustomValidator メンバ
他のコントロールに対してカスタム検証を実行できるコントロールを提供します。
CustomValidator データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | CustomValidator |





名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) |
![]() | ServerValidate | ControlToValidate プロパティの値が CustomValidator によって検証されたときに発生します。 |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |

CustomValidator メンバ
CustomValidator データ型で公開されるメンバを以下の表に示します。






名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) |
![]() | ServerValidate | サーバーで検証が実行されると発生します。 |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |

- CustomValidatorのページへのリンク