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 :

Impossible de faire fonctionner le MaskedEditExtender


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Par défaut Impossible de faire fonctionner le MaskedEditExtender
    Bonjour.

    Je m'arrache les cheveux depuis plusieurs heures sur un problème avec le MaskedEditExtender (composant Ajax).

    Je l'utilise sur un textbox permettant à l'utilisateur de saisir le prix unitaire de vente d'un article.

    En saisie tout va bien.

    C'est quand j'affecte par code, une valeur à mon texbox (dans le cadre de son initialisation) que cela ne marche pas.

    En effet si j'affecte par exemple "100" à ce textbox la valeur affichée est "1000000000.00".

    Je ne sais pas s'il s'agit d'un problème de culture ou autre mais c'est un vrai casse tête !

    J'ai fait pas mal de recherche à ce sujet sur le net, en vain ....

    Je suis preneur de toute solution ...

    Voici la portion de code de mon code-behind :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <ajaxToolkit:MaskedEditExtender ID="MaskedEditExtender_PrixUnitaireVenteHT" runat="server"
                            TargetControlID="txtPrixUnitaireVenteHT"
                            MaskType="Number"
                            Mask="9999999999.99"
                            MessageValidatorTip="true"
                            DisplayMoney= "None"
                            AcceptNegative= "None"
                            ErrorTooltipEnabled="True"  
                            Autocomplete="false" 
                            InputDirection="LeftToRight"
                           />

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Par défaut
    En fait mon pb vient du fait que la valeur affecté au textbox doit toujours avoir le bon nombre de décimales et avoir un séparateur virgule.

    Si la valeur est comme cela ça marche.

    c'est loin d'être pratique ...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Par défaut
    J'ai développé une fonction qu'il faut utiliser pour passer une chaine aux textbox associés au MaskedEditExtender.

    La voici au cas ou cela pourrait dépanner quelqu'un.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
        'Cette méthode retourne une chaine formatée en décimal avec un nombre de décimales fixes
        'Le nombre de décimales attendues est passée en paramètre 
        'Remarque : Il est à noter que le décimal passé en paramètre contient un nombre de décimal
        '           supérieur au nombre de décimales passées en paramètre la chaine retournée
        '           correspondra à la valeur décimale arrondi au nombre de décimales spéciciée
        'Remarque : Cette méthode est utilisé pour l'affectation de valeur au textBox liés à un MaskedEditExtender
        '           permettant de saisir des valeurs décimales
        '           En effet, quand on affecte une chaine à ce type de TextBox il est absolument nécessaire que
        '           le nombre de décimales correspondent toujours au nombre de décimales attendu par le MaskedEditExtender
        '           Cette fonction permet de faire cela
        'Exemple : Appel de cette méthode avec les paramètres (45.32,3) / Résultat : 45.320
        '          Appel de cette méthode avec les paramètres (45.39,1) / Résultat : 45.4
        Public Shared Function RetournerChaineFormatDecimalFixe(ByVal dPar_ValeurDecimale As Decimal, ByVal iPar_NombreDeDecimales As Int16) As String
            Dim iLocal_CompteurBoucleWhileCreationFormat As Int64 '//§/Compteur utilise dans la boucle While de création du format
            Dim sLocal_FormatAUtiliser As String '//§/Chaine contenant le format à utiliser
            Dim sLocal_ValeurRetour As String = "" '//§/Valeur retournée par cette méthode
     
            'Nous effectuons systématiquement un arrondi, au nombre de décimales spécifié,
            'sur le Decimal passé en paramètre
            dPar_ValeurDecimale = Decimal.Round(dPar_ValeurDecimale, iPar_NombreDeDecimales)
     
            'Initialiser la chaine relative au format à utiliser
            sLocal_FormatAUtiliser = "{0:00"
     
            'Initialisation du compteur utilisé dans la boucle While
            iLocal_CompteurBoucleWhileCreationFormat = 0
     
            'Si le nombre de décimales de la chaine à retourner est > 0
            If iPar_NombreDeDecimales > 0 Then
                'On ajoute au format le symbole correspondant à la position de la décimale
                sLocal_FormatAUtiliser = sLocal_FormatAUtiliser + "."
     
                'Boucle d'ajout des zéros correspondants aux décimales
                While iLocal_CompteurBoucleWhileCreationFormat < iPar_NombreDeDecimales
                    'Chaque zéro ajouté au format ici correspond à une décimale
                    sLocal_FormatAUtiliser = sLocal_FormatAUtiliser + "0"
                    'Incrémenter le compteur de boucle
                    iLocal_CompteurBoucleWhileCreationFormat = iLocal_CompteurBoucleWhileCreationFormat + 1
                End While
     
            End If
     
            'Terminer le format à utiliser
            'Au final nous devons donc avoir un format du type : "{0:00.00000}"
            sLocal_FormatAUtiliser = sLocal_FormatAUtiliser & "}"
     
            'Créer la chaine à retourner en utilisant ce format
            sLocal_ValeurRetour = String.Format(sLocal_FormatAUtiliser, dPar_ValeurDecimale)
     
            '//§/Retourner la chaine correctement formatée
            Return sLocal_ValeurRetour
     
        End Function

Discussions similaires

  1. [Requête] Impossible de faire fonctionner !
    Par Nesta92 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/04/2007, 09h38
  2. Réponses: 5
    Dernier message: 05/12/2006, 23h57
  3. impossible de faire fonctionner le gridlayout
    Par oceane751 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 12/06/2006, 10h42
  4. Réponses: 5
    Dernier message: 22/03/2006, 10h39
  5. impossible de faire fonctionner phppgadmin et pgdmin3
    Par le_ben dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 09/12/2004, 14h27

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