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>
Я надеюсь, что это работает и поможет вам