1

我在实现 CustomValidator 时遇到问题,我有多个带有 MaskedEditExtender 的 TextBox,它们都应该包含一个日期 ( "dd-MM-yyyy")。要检查此日期,我想使用 CustomValidator,但传递给 MyValidate 函数的 e.Value 始终为空,而 TextBox 则不是。

代码:

<asp:TextBox ID="Gereed" runat="server" CssClass="date" />
<asp:CustomValidator ID="cd1" runat="server" TargetControlID="Gereed" />
<asp:MaskedEditExtender ID="md1" runat="server" TargetControlID="Gereed" 
     Mask="99-99-9999" ClearMaskOnLostFocus="false"/>

后面的代码:

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    cd1.ValidateEmptyText = True
    AddHandler cd1.ServerValidate, AddressOf ValidateDate 
End Sub
Protected Sub ValidateDate(ByVal sender As Object, ByVal e As ServerValidateEventArgs)
    e.IsValid = MyValidate(e.Value, "dd-MM-yyyy")
End Sub

我有一个有同样问题的 ClientValidationFunction。

有谁知道解决这个问题?我想我错过了一些东西,但我不知道是什么,另一个网站中的类似解决方案可以完美运行。

4

1 回答 1

1

TargetControlID 不是 CustomValidator 的属性,它应该是 ControlToValidate。不知何故没有错误消息,如果没有找到 ControlToValidate,普通的验证器会抛出异常,但 CustomValidator 没有。

于 2011-05-26T12:19:36.197 回答