ajaxToolkit:MaskedEditExtender - есть ли способ написать собственный MaskType или я все-таки могу использовать "Время"?

Я пытаюсь использовать ajaxToolkit:MaskedEditExtender для ввода временного интервала. Теперь я хочу иметь возможность разрешать часы: минуты, но, как я это делаю, это позволяет только с 00:00 до 23:59. Мне, однако, нужно также разрешить 999:59, то есть я не хочу время дня, но установить интервал.

               <ajaxToolkit:MaskedEditExtender 
                    runat="server" 
                    ID="StartTimeMaskedEdit" 
                    MaskType="Time" 
                    Mask="999:99" 
                    TargetControlID="TimeOutTextBox" 
                    ClearMaskOnLostFocus="true" 
                    AutoComplete="true" 
                    AutoCompleteValue="000:00" />          

               <ajaxToolkit:MaskedEditValidator 
                    runat="server" ID="StartTimeMaskedEditValidator" 
                    ControlExtender="StartTimeMaskedEdit" 
                    ControlToValidate="TimeOutTextBox" 
                    IsValidEmpty="false" 
                    InvalidValueMessage="*Invalid Time" 
                    InvalidValueBlurredMessage="*Invalid Time" />

Когда я использую MaskType="number"проблема в том, что двоеточие исчезает, когда поле ввода теряет фокус (возможно, потому, что двоеточие не является допустимой частью числа). Он снова появляется в фокусе, но этого недостаточно.

Есть ли способ написать кастом MaskType или учесть вышеизложенное в MaskType="Time" или же "number" содержит?

3 ответа

Решение

Я удалил часть проверки и теперь делаю это в коде

<ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender2" runat="server"
                        TargetControlID="txtRestaurantMacID"
                        Mask="NL {2}:NL {2}:NL {2}:NL {2}:NL {2}:NL {2}"
                        ClearMaskOnLostFocus="true"
                        ClearTextOnInvalid="true"
                        MessageValidatorTip="true"
                        OnFocusCssClass="MaskedEditFocus"
                        OnInvalidCssClass="MaskedEditError"
                        MaskType="None"
                        InputDirection="LeftToRight"
                        ErrorTooltipEnabled="True" />

и использовать также валидатор

 <ajaxToolkit:MaskedEditValidator ID="MaskedEditValidator2" runat="server"
                    ControlExtender="MaskedEditExtender2"
                    ControlToValidate="txtRestaurantMacID"
                    ValidationExpression="^([0-9a-fA-F]{2}){5}[0-9a-fA-F]{2}$"
                    IsValidEmpty="False"
                    Display="Dynamic"
                    TooltipMessage="Enter valid Mac Id"
                    EmptyValueBlurredText="*"
                    InvalidValueBlurredMessage="*"
                    MaximumValueBlurredMessage="*"
                    MinimumValueBlurredText="*"
                    ForeColor="Red"
                    ValidationGroup="addres" />

Попробуйте, как показано ниже:

<ajaxToolkit:MaskedEditExtender ID="StartTimeMaskedEdit" runat="server" 
                        TargetControlID="TimeOutTextBox" Mask="999:99:99" 
                        MessageValidatorTip="true" MaskType="Time" CultureName="en-us" 
                        InputDirection="RightToLeft" ErrorTooltipEnabled="True" />


<ajaxToolkit:MaskedEditValidator ID="StartTimeMaskedEditValidator" runat="server" 
                         ControlExtender="StartTimeMaskedEdit"
                         ControlToValidate="TimeOutTextBox" IsValidEmpty="false" 
                         MaximumValue="23:59:59" MinimumValue="00:00:00"
                         EmptyValueMessage="Enter Time" 
                         MaximumValueMessage="23:59:59" 
                         InvalidValueBlurredMessage="Time is Invalid"
                         MinimumValueMessage="Time must be grater than 00:00:00"
                         EmptyValueBlurredText="*"
                         ToolTip="Enter time between 00:00:00 to 23:59:59">   
</asp:MaskedEditValidator>

Я надеюсь, что это работает и поможет вам

Другие вопросы по тегам