2015-01-26 80 views
0

对于一个练习,我必须比较如果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 
    } 
} 
+1

'如果(!TextBox2.ToString()= TextBox3.ToString())'应该是以下 '如果(TextBox2.Text != TextBox3.Text)' [C#MSDN如何使用TextBox控件](https://msdn.microsoft.com/en-us/library/bb397491(v = vs.90).aspx) – MethodMan 2015-01-26 19:38:39

回答

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

你有没有编译过代码并运行它..?我敢打赌,你会发现它不会检查任何文本..比较中的'.Text'属性在哪里? 'TextBox2.ToString()'将'产生'对象本身的字符串表示形式。 – MethodMan 2015-01-26 19:36:45

+1

谢谢法曼,我在复制他的代码,所以他可以看到args.IsValid。我更新了它。 – RickJames 2015-01-26 19:40:42

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; 
     } 
    } 
+0

我还没有解决方案。 – Vince 2015-01-26 19:58:10

+0

它仍然不检查文本框2或3是否相同 – Vince 2015-01-26 19:58:48

+0

@Vince您的页面上是否有任何按钮? – 2015-01-27 04:17:35