服务器端customvalidator(asp + vb.net)没有触发

时间:2011-05-16 16:16:38

标签: .net vb.net validation customvalidator

我知道这已被问过很多,但我有一个服务器端自定义验证器没有被解雇,我找不到原因(同样,我复制了其他地方有效的示例,无法使其工作...)

代码:

<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端,但不是服务器端)

3 个答案:

答案 0 :(得分:1)

没有设法让它发挥作用。删除了自定义验证器,并在逻辑内部进行了验证。

答案 1 :(得分:0)

在我的头顶,我会尝试将Protected Sub更改为Public Sub。

编辑:我刚刚测试了您的代码以及您为我工作的内容。我进入了Debug并点击了一个按钮,该按钮首先发布回到MyValidator.ServerValidate的位置,就像它应该的那样。它会使页面无效并显示错误消息。

答案 2 :(得分: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