2011-05-16 49 views
0

我知道這已被問了很多,但我有一個服務器端自定義驗證器沒有被解僱,我找不到原因(另外,我已經服務器端定製驗證器(asp + vb.net)不解僱

<asp:CustomValidator ID="MyValidator" runat="server" ErrorMessage="My error message" OnServerValidate="MyValidator_OnServerValidate" /> 

驗證功能

Protected Sub MyValidator_OnServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles MyValidator.ServerValidate 
    Dim i As Integer 
    i = 0 
    args.IsValid = False 
End Sub 

這是最後的測試我做(複製:

的代碼複製的例子,從其他地方工作,不能讓它工作...)從其他問題),但我也嘗試將驗證程序附加到一個控件(並添加ValidateEmptyText),並刪除handles MyValidator.ServerValidate並將其添加到onServerValidate的標記中。

(我通常是一個Java程序員,所以這是一個非常基本的錯誤,我應該已經看到了,可別小看我的.Net無知)

在此先感謝

編輯:添加的代碼提交按鈕...

<asp:Button ID="lbGuardar" runat="server" CssClass="button" Text="Guardar" CausesValidation="true" ></asp:Button> 

編輯2:加在我的按鈕的代碼Page.validate(),它不會調用驗證程序的服務器端。此外,自定義驗證程序正在被調用(至少它的客戶端/ JavaScript的一面,但不是服務器端)

回答

1

沒有設法使它工作。刪除了自定義驗證器,並在邏輯內進行驗證。

0

關閉我的頭頂,我會嘗試更改保護小組公共服務器。

編輯:我剛剛測試了你的代碼以及你對我的作品。我進入了Debug並點擊了一個按鈕,該按鈕首先放回到MyValidator.ServerValidate中,因爲它應該如此。它會使頁面無效並顯示錯誤消息。

+0

沒有,沒有工作......但無論如何感謝 – SoulWanderer 2011-05-16 16:23:43

+0

是的......我剛剛測試過它,你對我有什麼作用。 – 2011-05-16 16:24:32

+0

可能是我缺少一些額外的配置?視覺工作室可能沒有改變一些底層文件嗎? – SoulWanderer 2011-05-16 16:38:33

0

應該是公共方法,不需要手柄。

Public Sub MyValidator_OnServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) 

    Dim i As Integer 
    i = 0 
    args.IsValid = False 

End Sub 
+0

更改了它,它不起作用... :( – SoulWanderer 2011-05-16 16:53:47

+0

它以什麼方式不起作用。如果你在觸發方法上放置了一個斷點,或者它沒有達到那個目標? – 2011-05-17 07:44:01

+0

它沒有達到'onServerValidate'內的斷點。這很奇怪,因爲如果我添加一個ClientSide驗證,它被調用,但服務器驗證沒有被調用,即使我以編程方式強制一個Page.validate()...我總是用方法上的斷點調試,它從來沒有達到...] – SoulWanderer 2011-05-17 09:29:56