2011-11-29 119 views
0

我想得到以下有效到dd-MMM-yyyy。任何想法为什么这个MaskedEditValidator行为不正常?

日历扩展程序将此格式传递给文本框,但从未显示在文本框中。出现

验证消息一秒钟的一小部分,然后你看到的是该商标又
__-___-____

示例代码:

<ajaxToolkit:CalendarExtender runat="server" Format="dd-MMM-yyyy" 
    TargetControlID="DOB" /> 

<ajaxToolkit:MaskedEditValidator ID="DOBMaskedEditValidator" 
    EmptyValueBlurredText="DOB required" EmptyValueMessage="DOB required" 
    InvalidValueBlurredMessage="DOB invalid" InvalidValueMessage="DOB invalid" 
    runat="server" ControlExtender="DobMaskedEditExtender" 
    SetFocusOnError="true" Display="Dynamic" ControlToValidate="DOB" 
    IsValidEmpty="false" /> 

<ajaxToolkit:MaskedEditExtender ID="DobMaskedEditExtender" runat="server" 
    MaskType="Date" TargetControlID="DOB" Mask="99-LLL-9999" CultureName="en-GB" 
    ClearMaskOnLostFocus="false" /> 

我一直在寻找不同的例子,但可以似乎并未确定问题所在。任何人有任何想法,我们如何做到这一点与自定义日期格式?我应该用自定义日期格式使用MaskType = Date吗?

+0

感谢编辑格雷厄姆,正要做同样的:) – Andrew

回答

1

对不起,家伙们忽略了明显的。我错过了ValidationExpression属性。我认为是因为我已经在MaskedEditExtender I中指定了格式,尽管这将与验证器一起使用。

很多例子了,其中表现出的正则表达式如下图所示:

"^(0?[1-9]|[12][0-9]|3[01])-(jan|Jan|JAN|feb|Feb|FEB|mar|Mar|MAR|apr|Apr|APR|may| 
May|MAY|jun|Jun|JUN|jul|Jul|JUL|aug|Aug|AUG|sep|Sep|SEP|oct|Oct|OCT|nov|Nov|NOV| 
dec|Dec|DEC)-(19|20)\d\d\s([0-1][0-9]|[2][0-3]):([0-5][0-9])$" 

但我想这能在多国语言等方面都走了一个更为基本的工作:

"(^\d{2}\-?\w{3}\-?\d{4}$)" 

这现在工作正常。

工作的完整示例:

<ajaxToolkit:CalendarExtender runat="server" Format="dd-MMM-yyyy" 
TargetControlID="DOB"></ajaxToolkit:CalendarExtender> 
<ajaxToolkit:MaskedEditValidator ID="DOBMaskedEditValidator" 
ValidationExpression="(^\d{2}\-?\w{3}\-?\d{4}$)" 
EmptyValueBlurredText="<%$Resources:Resource,DOBRequired%>" 
EmptyValueMessage="<%$Resources:Resource,DOBRequired%>" 
InvalidValueBlurredMessage="<%$Resources:Resource,DOBInvalid%>" 
InvalidValueMessage="<%$Resources:Resource,DOBInvalid%>" 
runat="server" ControlExtender="DobMaskedEditExtender" 
SetFocusOnError="true" Display="Dynamic" ControlToValidate="DOB" 
IsValidEmpty="false"></ajaxToolkit:MaskedEditValidator> 
<ajaxToolkit:MaskedEditExtender ID="DobMaskedEditExtender" 
ClearTextOnInvalid="false" runat="server" TargetControlID="DOB" 
Mask="99-LLL-9999" CultureName="en-GB" ClearMaskOnLostFocus="false" > 
</ajaxToolkit:MaskedEditExtender> 
相关问题