gpt4 book ai didi

c# - 对 ASP.NET 自定义验证器进行排序以及验证器的 Text 和 ErrorMessage 属性之间的区别

转载 作者:行者123 更新时间:2023-12-02 04:53:14 25 4
gpt4 key购买 nike

我有一个带有两个验证器的 TextBox。第一个验证器检查 TextBox 是否为空。第二个验证器检查 TextBox 的值是否包含空格。但是当我运行该项目并尝试在 TextBox 中没有任何文本的情况下进行验证时,它会显示两个验证器的错误消息。我想要的是,在第一个验证器成功验证之前,它不应该执行第二个验证器。

<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TextBox3" ErrorMessage="Please enter some value." Font-Names="Segoe UI" OnServerValidate="CustomValidator1_ServerValidate" SetFocusOnError="True"></asp:CustomValidator>
<br />
<asp:CustomValidator ID="CustomValidator2" runat="server" ControlToValidate="TextBox3" ErrorMessage="Spaces are not allowed." Font-Names="Segoe UI" OnServerValidate="CustomValidator2_ServerValidate" SetFocusOnError="True"></asp:CustomValidator>
<br />

所以我的问题是:

如何对验证进行排序,以便在成功验证其他验证后调用一个验证?

我想问的另一个问题是Validator的Text属性和ErrorMessage属性有什么区别?

最佳答案

您应该对空文本使用 RequiredFieldValidator,然后使用 CustomValidator 检查字符串组成。

<asp:RequiredFieldValidator 
ID="RequiredFieldValidator1"
ControlToValidate="TextBox3"
runat="server"
ErrorMessage="Please enter some value.">
</asp:RequiredFieldValidator>
<br />
<asp:CustomValidator
ID="CustomValidator2"
runat="server"
ControlToValidate="TextBox3"
ErrorMessage="Spaces are not allowed."
Font-Names="Segoe UI"
OnServerValidate="CustomValidator2_ServerValidate" SetFocusOnError="True">
</asp:CustomValidator>
<br />

ErrorMessage来自 MSDN:

Gets or sets the text for the error message displayed in a ValidationSummary control when validation fails.

Text来自 MSDN:

Gets or sets the text displayed in the validation control when validation fails. (Overrides Label.Text.)

编辑:

鉴于您正在进行多次验证,因此您应该为此使用单个 CustomValidator。在服务器端,您应该同时检查 Empty 和 String 组合,如下所示:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
if (string.IsNullOrEmpty(args.Value))
{
args.IsValid = false;
((CustomValidator)source).Text = "Please enter some value.";
}
else if (/*Check if has empty space*/)
{
args.IsValid = false;
((CustomValidator)source).Text = "Spaces are not allowed.";
}
else
{
args.IsValid = true;
}
}

关于c# - 对 ASP.NET 自定义验证器进行排序以及验证器的 Text 和 ErrorMessage 属性之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18445843/

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