組み込みのASP.Net検証コントロールを使用してこの検証を実行する必要がある場合は、ASP.NetCustomValidatorコントロールを使用する必要があります。これは、ASP.NetRequiredFieldValidatorコントロールを使用して実行することはできません。指定した検証を行うには、ページにCustomValidatorコントロールを配置して、マークアップが次のようになるようにします。
<asp:Label ID="Label1" runat="server" Text="Whats your name"></asp:Label>
<asp:TextBox ID="nameB" Width="322px" Height="30px" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustValidator" runat="server" ControlToValidate="nameB"
ValidateEmptyText="true" ErrorMessage="Please tell us your name."
onservervalidate="CustValidator_ServerValidate" Display="none" >**</asp:CustomValidator>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" CausesValidation="true" />
次に、カスタムバリデーターを作成する必要があります。サーバー側の検証コードは次のようになります。
protected void CustValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
if (string.IsNullOrWhiteSpace(args.Value))
{
Label1.Text = CustValidator.ErrorMessage;
args.IsValid = false;
}
else
{
Label1.Text = "Whats your name";
args.IsValid = true;
}
}
このカスタムバリデーターは、あなたが望む振る舞いを提供します。
一般に、CustomValidatorコントロールを使用する場合は、サーバー側の検証(セキュリティのため)とクライアント側の検証(UIエクスペリエンスを向上させるため)の両方を実行する必要があります。クライアント側の検証を取得するには、javascriptやjQueryでクライアント側の関数を記述して同様の検証を行い、それをカスタムバリデーターのClientValidationFunctionに割り当てる必要があります。
CustomValidatorコントロールの詳細については、MSDNドキュメントを参照してください。