Salut à tous,

Je rencontre un petit souci avec un champ texte me servant à la saisie d'une heure au format "hh.mm".

J'ai mis en place un MaskedEditExtender pour forcer la saisie à ce format, et un MaskedEditValidator pour m'assurer que les gens entraient bien des heures (et limiter au max à "23.59").

Tout cela fonctionne très bien, sauf que... Je souhaite que ce champs soit facultatif.

Si je laisse ClearMaskOnLostFocus="false", la saisie se passe bien, mais si je ne remplis pas le champ, il contient quand même le masque : "__.__", donc la validation du formulaire échoue.
SI au contraire je met ClearMaskOnLostFocus="false", le champ est bien vide quand je n'y entre rien, mais quand je le renseigne et que j'en sors, le masque disparait, me mettant l'heure au format suivant : "hhmm", sans le point, et le MaskedEditValidator nous indique donc une erreur.

Auriez-vous un moyen de faire en sorte que les 2 cas fonctionnent en même temps ?

Mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<asp:TextBox ID="TextBoxHeure" runat="server" />
<ajaxToolkit:MaskedEditExtender ID="TextBoxHeureMask" runat="server"
	Mask="99\.99"
	MaskType="None" 
	TargetControlID="TextBoxHeure"
	ClearMaskOnLostFocus="true"
	ClearTextOnInvalid="false" />
<ajaxToolkit:MaskedEditValidator ID="TextBoxHeureValidator" runat="server"
	ControlExtender="TimePicker"
	ControlToValidate="TextBoxHeureMask"
	IsValidEmpty="true"
	Display="Dynamic"
	InvalidValueMessage="*"
	ValidationExpression="((([01][0-9])|(2[0-3]))\.[0-5][0-9])|(2[_]\.2[_])" />