我正在处理一个带有两个输入字段的应用程序,这两个输入字段以不同的方式使用RequiredFieldValidator,RangeValidator等进行验证。我还需要一个验证,那就是检查用户在input1中写入的数字是否大于input2中的数字,这就是问题。
是否可以使用验证控件来比较2个输入字段,还是需要为其编写代码?我正在使用ValidationSummary控件,当然我想用此显示所有错误。如果无法使用验证控件来比较2个输入字段并且我需要为此编写代码,那么是否可以使用ValidationSummary显示错误消息,在这种情况下如何显示?
提前致谢!
答案 0 :(得分:1)
使用自定义验证程序控件并使用ServerValidate事件返回true / false,具体取决于检查是否正确。
验证摘要将检测到页面无效并显示您的消息。
C#
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
if (TextBox1.Text.Length > TextBox2.Text.Length)
args.IsValid = false;
else
args.IsValid = true;
}
的.aspx
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Invalid Length" Display="None" onservervalidate="CustomValidator1_ServerValidate"></asp:CustomValidator>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
答案 1 :(得分:1)
您是否尝试过使用CompareValidator?
这允许您比较2个输入字段,并且是根据Requiredfield和Range验证器的标准控件。
<asp:CompareValidator ControlToCompare="text1" ControlToValidate="text2" ErrorMessage="error" runat="server" Operator="LessThan" Type="Integer" />
答案 2 :(得分:1)
您可以使用CompareValidator。 有关示例,请参阅here。
答案 3 :(得分:0)
bool isLonger(string s1, string s2)
{
return s1.Length > s2.Length ? true : false;
}
如果s1的长度大于s2的长度,则返回true