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 :

Saisie d'une heure dans un Textbox [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut Saisie d'une heure dans un Textbox
    Bonjour, je souhaite saisir une heure dans un textbox en n'autorisant que les chiffres et qu'il y ait dans le textbox __:__

    J'ai cherché un peu et j'ai trouvé ce morceau de code qui ne me donne malheureusement pas grand chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    <asp:TextBox ID="TextBoxHeure" runat="server" Width="45px" Style="text-align: right;"></asp:TextBox>
                <asp:RegularExpressionValidator ID="RegularExpressionValidatorHeure" runat="server"
                    ControlToValidate="TextBoxHeure" ErrorMessage="*" ValidationExpression="(([01][0-9])|(2[0-3])):[0-5][0-9]"
                    ValidationGroup="ValidationAgir"></asp:RegularExpressionValidator>
    Quelqu'un a une idée sur les modifications à apporter pour que ça fonctionne ?
    thx

  2. #2
    Membre habitué Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Points : 177
    Points
    177
    Par défaut
    Essaye avec cette expression réguilière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([0-9]{2}):([0-9]{2})$

  3. #3
    Membre habitué Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Points : 177
    Points
    177
    Par défaut
    Je reviens vers toi.

    J'ai répondu un peu vite. Après avoir regardé de plus près l'expression régulière que tu nous as fournit je la trouve tout à fait correct et fonctionnel (et plus complète que la mienne pour saisir des heures).

    Quel est donc ton problème?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Tout simplement que je n'ai rien qui se produit avec ce bout de code, je peux facilement mettre des caractères, la longueur de ce qui est tapé dépasse le format d'un date ect ... m'enfin j'ai peut être loupé un truc si tu me dis que ça devrait marcher , je vais reregarder

  5. #5
    Membre habitué Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Points : 177
    Points
    177
    Par défaut
    Il y avait en effet quelque faille dans ton expression régulière.

    La voici un petit peu transformé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (^([01]{1})([0-9]{1}))|(^([2]{1})([0-3]{1})):([0-5]{1})([0-9]{1})$

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Rebjr, merci pour ta réponse!
    Cependant je ne comprends pas pourquoi mais ça ne marche toujours pas...

  7. #7
    Membre habitué Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Points : 177
    Points
    177
    Par défaut
    Tu peux valider ou tout simplement ton message d'erreur "*" ne s'affiche pas?

  8. #8
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    TU peux utiliser le contrôle MaskedEditExtender

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:MaskedEditExtender ID="MaskedEditExtender1" runat="server" CultureName="fr-FR" TargetControlID="TextBox1" Mask="99/99/9999" MaskType="Date" AcceptNegative="None"/>

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    C'est bon je pense que ça marche , comme un c** j'ai oublié de mettre

    ValidationGroup="ValidationAgir" dans mon bouton submit ...
    Merci à toi pour ton aide!

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par aguetat Voir le message
    TU peux utiliser le contrôle MaskedEditExtender

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:MaskedEditExtender ID="MaskedEditExtender1" runat="server" CultureName="fr-FR" TargetControlID="TextBox1" Mask="99/99/9999" MaskType="Date" AcceptNegative="None"/>
    je viens de lire ton poste, même si j'ai trouvé la solution à mon problème ( je pense ) ça m'intéresse
    Dans mon cas il s'agit d'une heure pas une date ( j'ai utilisé datepicker de Jquery pour le calendrier ).

    ça marche si je mets mask="99:99" maskType="Hour" un truc du genre , que symbolise le 9 ?

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    Oui ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <cc1:MaskedEditExtender   
                ID="MaskedEditExtender1"  
                runat="server"  
                TargetControlID="TextBox1"  
                Mask="99:99:99"  
                MaskType="Time"  
                MessageValidatorTip="true"  
                >  
            </cc1:MaskedEditExtender>
    Penser à ajouter la ddl AjaxTookitControl à ton application

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Merci je suis allé télécharger la dll
    ensuite j'ai mis en haut de ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit"%>
    et j'ai donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                   <td>
                        <asp:TextBox ID="TextBoxHeure" runat="server" Width="45px" Style="text-align: right;"></asp:TextBox>
                        <asp:RegularExpressionValidator ID="RegularExpressionValidatorHeure" runat="server"
                            ControlToValidate="TextBoxHeure" ErrorMessage="Merci de rentrer une heure au format HH:MM"
                            ValidationExpression="(([01][0-9])|(2[0-3])):[0-5][0-9]" ValidationGroup="ValidationAgir"></asp:RegularExpressionValidator>
                        <cc1:maskededitextender id="MaskedEditExtender1" runat="server" targetcontrolid="TextBoxHeure"
                            mask="99:99" masktype="Time" messagevalidatortip="true">  
            </cc1:maskededitextender>
                    </td>
    Mais j'ai une erreur lors de l'exécution du projet :

    Erreur d'analyse
    Description : Une erreur s'est produite au cours de l'analyse d'une ressource requise pour répondre à cette demande. Veuillez consulter ci-dessous les détails relatifs à l'erreur d'analyse en question, puis modifier votre fichier source de manière appropriée.

    Message d'erreur de l'analyseur: Impossible de charger le fichier ou l'assembly 'AjaxControlToolkit' ou une de ses dépendances. Le fichier spécifié est introuvable.
    je précise que j'ai créé un nouveau dossier appelé dll dans mon projet et j'ai mis la dll dedans

    merci d'avance!

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    L'erreur a évolué:

    Le contrôle avec l'ID 'MaskedEditExtenderHeure' requiert ScriptManager sur la page. ScriptManager doit apparaître avant les contrôles qui en ont besoin.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.InvalidOperationException: Le contrôle avec l'ID 'MaskedEditExtenderHeure' requiert ScriptManager sur la page. ScriptManager doit apparaître avant les contrôles qui en ont besoin.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                <cc1:MaskedEditExtender ID="MaskedEditExtenderHeure" TargetControlID="TextBoxHeure"
                    Mask="99:99" InputDirection="LeftToRight" runat="server" MaskType="Number" ClearMaskOnLostFocus="false" />
    Je précise que j'ai installé AjaxcontrolToolKit aussi en faisant " Add library package reference"

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Points : 101
    Points
    101
    Par défaut
    Je pense avoir trouvé !

    Il fallait ajouter en dur un scriptmanager qui se trouvait dans ma boite à outils.

  15. #15
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305
    Par défaut
    Ouiii, j'ai oubli de t'indiquer ça

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

Discussions similaires

  1. calculer une valeur dans un textbox au moment de la saisie
    Par Msysteme dans le forum Windows Forms
    Réponses: 9
    Dernier message: 16/04/2009, 18h15
  2. Saisie d'une date dans une textbox
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 23/11/2007, 12h51
  3. [Ergonomie] Moyen pour saisir une heure dans une page web ?
    Par mic79 dans le forum Webdesign & Ergonomie
    Réponses: 7
    Dernier message: 16/12/2005, 14h03
  4. Saisie d'une heure ou d'une date
    Par giloutho dans le forum Composants VCL
    Réponses: 8
    Dernier message: 02/12/2005, 12h27
  5. insérer une heure dans une BD
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 26/04/2005, 12h10

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