比较字段(验证c#/ asp.net)

时间:2012-02-09 23:29:24

标签: c# asp.net validation

我正在处理一个带有两个输入字段的应用程序,这两个输入字段以不同的方式使用RequiredFieldValidator,RangeValidator等进行验证。我还需要一个验证,那就是检查用户在input1中写入的数字是否大于input2中的数字,这就是问题。

是否可以使用验证控件来比较2个输入字段,还是需要为其编写代码?我正在使用ValidationSummary控件,当然我想用此显示所有错误。如果无法使用验证控件来比较2个输入字段并且我需要为此编写代码,那么是否可以使用ValidationSummary显示错误消息,在这种情况下如何显示?

提前致谢!

4 个答案:

答案 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