0

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

编码:

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

4

3 回答 3

1

应该是公共方法并且不需要句柄。

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
于 2011-05-16T16:28:15.410 回答
1

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

于 2011-05-25T14:56:13.167 回答
1

在我的脑海中,我会尝试将 Protected Sub 更改为 Public Sub。

编辑:我刚刚测试了你的代码,你有什么对我有用。我进入 Debug 并单击了一个按钮,该按钮返回它首先进入 MyValidator.ServerValidate 的位置,这是应该的。它使页面无效并显示错误消息。

于 2011-05-16T16:18:55.860 回答