即使文本框不为空,自定义验证程序也不会触发

时间:2011-05-30 09:17:31

标签: asp.net customvalidator

我有一个cutomvalidator,textbox.text = 1和一个子程序:

1.
asp:TextBox id="tbxNumber" runat="server" MaxLength="100

2.
asp:CustomValidator id="vNumeric" runat="server" ControlToValidate="tbxNumber" Display="None" OnServerValidate="ValidateNumbers2"

3.
Sub ValidateNumbers2(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)

If Not IsNumeric(args.Value) Then  

  args.IsValid = False

Else

   args.IsValid = True

End If


End Sub

当我尝试调试vNumeric.Validate时,子ValidateNumbers2不会触发?为什么呢?

想法?我在这个小问题上浪费了太多时间。我出于某些原因只需要使用customvalidator。

2 个答案:

答案 0 :(得分:0)

如果您在测试时文本框为空,则不会触发。你需要设置

 ValidateEmptyText="True"

在您的customvalidator中。

答案 1 :(得分:0)

您是否更改了ClientId模式,Validators可能不支持客户端Id模式静态

Validators and ClientIDMode issue (ASP.NET)

////////////////////

您可以尝试使用Page.Validate();

强制验证