触发asp.net CustomValidator,但ServerValidateEventArgs值始终为空

时间:2011-05-26 08:42:10

标签: asp.net ajaxcontroltoolkit customvalidator

我在实现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,它有同样的问题。

有谁知道这个解决方案?我想我错过了什么,但我不知道是什么,另一个网站上的类似解决方案效果很好。

1 个答案:

答案 0 :(得分:1)

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