2015-06-11 77 views
1

我試圖使一個文本框上的自定義CustomValidator,使長度不能爲0.除了它不顯示錯誤消息。但繼續Button_click事件。C#CustomValidator不顯示錯誤,但args.Isvalid = false

這是我使用

<asp:TextBox ID="proj_title" runat="server"></asp:TextBox> 
<asp:CustomValidator ID="CustomValidatorproj_title" runat="server" ErrorMessage="CustomValidator" Display="Dynamic" OnServerValidate="CustomValidatorproj_title_OnServerValidate" ShowSummary="true"></asp:CustomValidator> 

的驗證代碼:

protected void CustomValidatorproj_title_OnServerValidate(object source, ServerValidateEventArgs args) 
    { 
     if (proj_title.Text.Length > 0) 
     { 
      args.IsValid = true; 
     } 
     else 
     { 
      args.IsValid = false; 
     } 
    } 
+0

備註:您可以用'args.IsValid = proj_title.Text.Length> 0'取代if/else塊 – 3dGrabber

+0

您是否期待驗證發生在客戶端或服務器端? –

回答

0

所以我找到了問題所在。 即使驗證器顯示「false」,自定義驗證器也會繼續按鈕單擊方法爲了捕獲IsValid,點擊方法中需要有一個if (Page.IsValid){}

實施例:

protected void button_Click(object sender, EventArgs e) 
     { 
      if (Page.IsValid) 
      { 
       //code here if the page is valid 
      } 
     } 

在此之後,如果頁面是無效的,並示出該消息的自定義驗證觸發器。

1

你應該提供的ControlToValidate = 「proj_Title」 屬性中的自定義驗證

+0

這是CustomValidator現在:< asp:CustomValidator>' 但它現在正在跳過Validator:http://i.imgur.com/B3538xj.png – Kevin

0

確保您有ValidateEmptyText設置爲True。

相關問題