我在实现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,它有同样的问题。
有谁知道这个解决方案?我想我错过了什么,但我不知道是什么,另一个网站上的类似解决方案效果很好。
答案 0 :(得分:1)
TargetControlID不是CustomValidator的属性,它应该是ControlToValidate。不知怎的,没有错误消息,如果找不到ControlToValidate,普通的Validators会抛出异常,但CustomValidator却没有。