【问题标题】:Compare fields (validation c#/asp.net)比较字段(验证 c#/asp.net)
【发布时间】:2012-03-02 11:57:17
【问题描述】:
我正在开发一个具有两个输入字段的应用程序,这些输入字段通过RequiredFieldValidator、RangeValidator 等以不同的方式进行验证。我需要再进行一次验证,即检查用户在 input1 中写入的数字是否不大于在 input2 中的数字,这就是问题所在。
是否可以使用验证控件来比较 2 个输入字段,或者我是否需要为其编写代码?我正在使用 ValidationSummary 控件,当然我想显示所有错误。如果无法使用验证控件来比较 2 个输入字段并且我需要为此编写代码,是否可以使用 ValidationSummary 显示错误消息,在这种情况下如何显示?
提前致谢!
【问题讨论】:
标签:
c#
asp.net
validation
【解决方案2】:
使用自定义验证器控件并使用 ServerValidate 事件根据检查是否正确返回真/假。
验证摘要将表明该页面无效并显示您的消息。
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" />
【解决方案3】:
您是否尝试过使用 CompareValidator?
这允许您比较 2 个输入字段,并且是根据Requiredfield 和 Range 验证器的标准控件。
<asp:CompareValidator ControlToCompare="text1" ControlToValidate="text2" ErrorMessage="error" runat="server" Operator="LessThan" Type="Integer" />
【解决方案4】:
bool isLonger(string s1, string s2)
{
return s1.Length > s2.Length ? true : false;
}
如果 s1 的长度大于 s2 的长度,则返回 true