IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

MaskedEditExtender & MaskedEditValidator : ClearMaskOnLostFocus [Débutant]


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Yosko
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Par défaut MaskedEditExtender & MaskedEditValidator : ClearMaskOnLostFocus
    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[_])" />

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Mets une valeur par défaut (minuit).

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre confirmé Avatar de Yosko
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Par défaut
    Ah oui, pas con comme solution. Merci pour cette idée.

    Dans mon cas précis, je viens tout juste de trouver une autre solution : en réalité mon champ n'est pas réellement "facultatif". En fait, il est obligatoire dans certains cas, et interdit dans d'autres.

    Du coup, dans les cas où il est interdit, je le grisais juste. Désormais, voilà ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    this.TextBoxHeure.Text = "";
    this.TextBoxHeure.Enabled = false;
    this.TextBoxHeureMask.Enabled = false;
    this.TextBoxHeureValidator.Enabled = false;

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo