たとえば、タイム ゾーン オフセットを 05:00 または -05:00 の形式で表示するテキスト ボックスに、マスクされた編集エクステンダーを使用しようとしています。以下は私が使用したもので、最初にマスクが表示され、上記のいずれかを入力できます。しかし、テキストボックスを離れると、コロンが削除され、無効な形式のエラーが発生します。ここで何が欠けていますか?(MaskType を Number から None に変更したのは、ドロップしないことを望んでいましたが、ドロップしません)。
<asp:TextBox runat="server" ID="tbTZOffset" CssClass="NormalSmall" Text="" />
<ajaxToolkit:MaskedEditExtender runat="server" ID="meeTZO"
TargetControlID="tbTZOffset"
Mask="99:99"
MessageValidatorTip="false"
MaskType="None"
InputDirection="LeftToRight"
AcceptNegative="Left"
ErrorTooltipEnabled="True"/>
<ajaxToolkit:MaskedEditValidator runat="server" ID="mevTZO"
ControlExtender="mevTZO"
ControlToValidate="tbTZOffset"
IsValidEmpty="False"
EmptyValueMessage="Time Zone Offset is required"
InvalidValueMessage="Time Zone Offset is invalid (must be in [-]hh:mm format)"
EmptyValueBlurredText="*"
Display="none"
ValidationExpression="\b[-]?\d{2}:\d{2}\b"
TooltipMessage="Time Zone Offset in [-]hh:mm format"
ValidationGroup="vgConfig"/>
追加情報:
Ajax Control Toolkit for .Net 3.5 (2013 年 7 月版) の最新バージョンをダウンロードしました。どうやら以前のバージョンにバグがあったようです。
MaskType="Number"、Mask="NNNNNN"、および Filtered="-:" を設定できます。これは、4 桁の数字、マイナス記号、コロンを使用できる十分な文字数です。これにより、 05:00 と -05:00 の両方を入力できるようですが、 05:00 を入力すると、最後に 1 つのスペースが残ります (つまり、 00:05_ のように最後のアンダースコアが表示され続けます)。また、05:008 を入力することもできます。
マスク タイプを「なし」に戻すと、再び負の数を入力できなくなります。
私はアイデアを使い果たしたので、このコントロールを忘れる準備ができています. これらの開発者が「製品」をリリースする前に何らかのテストを行っているかどうかはわかりません。