自定义验证器进行比较

时间:2015-01-26 19:27:00

标签: c# asp.net validation customvalidator

对于练习,我必须比较2个文本框是否包含与自定义验证器相同的文本(与comparevalidator做同样的事情) 但我不能使用比较验证器。我必须使用自定义验证器。

它必须比较TextBox1和TextBox2,如果它们不包含相同的值(文本),则必须提供错误消息:不是相同的值!

我该如何解决这个问题?

这是我到目前为止所做的:

标记:

<asp:TextBox ID="TextBox2" runat="server" />
<asp:TextBox ID="TextBox3" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Not the same value !" ControlToValidate="TextBox2" onservervalidate="CustomValidator1_ServerValidate" />

这就是我在代码隐藏中尝试做的事情:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
    if (TextBox2.ToString() != TextBox3.ToString())
    {
        Label1.Text = "Not the same values";
        // don't exactly know what to do in here in order to put it in the error message
    }
}  

2 个答案:

答案 0 :(得分:0)

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (TextBox2.Text != TextBox3.Text)
        {
            Label1.Text = "Not the same values";
            args.IsValid = false;
        }
      }

答案 1 :(得分:0)

请参阅此讨论。关于您的问题,它有一个解决方案

Check this

更新:

试试这个:

<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" />
<asp:CustomValidator ID="CustomValidator1" runat="server" 
ErrorMessage="Not the same value !" ControlToValidate="TextBox2" onservervalidate="CustomValidator1_ServerValidate"></asp:CustomValidator>




protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (TextBox2.Text == TextBox3.Text)
        {
            args.IsValid = true;

        }
        else
        {

            args.IsValid = false;
        }
    }