2015-01-26 79 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