2011-05-16 42 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