如果您的要求是要使用内置的 ASP.Net 验证控件进行此验证,那么您将需要使用 ASP.Net CustomValidator 控件。这不能使用 ASP.Net RequiredFieldValidator 控件来完成。要执行您指定的验证,请在您的页面上放置一个 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。
可以在MSDN 文档中找到有关 CustomValidator 控件的更多信息。