我知道这已被问过很多,但我有一个服务器端自定义验证器没有被解雇,我找不到原因(同样,我复制了其他地方有效的示例,无法使其工作...)
代码:
<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端,但不是服务器端)
答案 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