gpt4 book ai didi

c# - ValidationGroup 并有效地验证多个文本框 asp c#

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:45 25 4
gpt4 key购买 nike

我有一个注册页面,其中包含几个必填字段(电子邮件、用户名、密码等)的文本框。

有没有一种方法可以验证所有这些都不为空,并且如果其中任何一个未填写则只显示一条错误消息?我知道我可能必须为所有这些表单设置一个 RequiredFieldValidator,但如果它们都有错误消息,那么错误消息不会显示在每个失败的验证中,而不仅仅是通用的“请填写所有必填字段"消息。

我认为 validationgroup 可以解决这个问题,但是除了 RequiredFieldValidator 之外,这些文本框还会有其他验证,我认为这会有问题,因为我认为您不能将一个文本框分配给 1 个以上的 validationGroup?是否有执行此操作的最佳实践方法?

谢谢

最佳答案

您可以使用 ASP.NET Custom Validator控制。您可以对其进行调整,以便为任何 数量的控件设置自定义验证逻辑,我相信这正是您所需要的。它还具有验证客户端(通过使用 javascript)和/或服务器上的输入的功能。

我将向您展示一个使用服务器端验证的示例,如果您需要它在客户端上工作,请查看 ClientValidationFunction

ASPX:

First Name:<br />
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox><br />
Last Name:<br />
<asp:TextBox ID="txtLastName" runat="server"></asp:TextBox><br />
Email Address:<br />
<asp:TextBox ID="txtEmailAddress" runat="server"></asp:TextBox><br />
<asp:Button ID="btnSignUp" runat="server" Text="Sign Up" OnClick="SignUp" />&nbsp;
<asp:CustomValidator ID="signUpValidator" runat="server" ErrorMessage="Please fill in all the fields first"
ForeColor="Red" OnServerValidate="ValidateSignUp"></asp:CustomValidator>

代码隐藏:

protected void ValidateSignUp(object source, ServerValidateEventArgs args)
{
bool hasFirstName = txtFirstName.Text.Length > 0 ? true : false;
bool hasLastName = txtLastName.Text.Length > 0 ? true : false;
bool hasEmail = txtEmailAddress.Text.Length > 0 ? true : false;

if (hasFirstName && hasLastName && hasEmail)
args.IsValid = true;
else
args.IsValid = false;
}

protected void SignUp(object sender, EventArgs e)
{
if (Page.IsValid)
{
//All the required fields have been filled in, sign the user up
}
}

关于c# - ValidationGroup 并有效地验证多个文本框 asp c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14026897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com