1 votes

Databinding int32 à MaskedEditExtender activé TextBox

J'ai un schéma maître/détail pour éditer un asp:GridView en utilisant un asp:DetailsView. L'un de mes champs contient un numéro de téléphone de type int64 (toujours 10 chiffres). J'aimerais que ce champ soit toujours affiché comme suit (###)###-#### . Le problème est que le premier chiffre du numéro de téléphone est toujours tronqué dans mon champ d'élément d'édition. J'ai utilisé un MaskedEditExtender pour réaliser le formatage.

Voici mon EditItemTemplate pour la vue détaillée :

<cc1:MaskedEditExtender TargetControlID="edtPROJ_Leader_Phone" Mask="(999)999-9999" runat="server" ClearMaskOnLostFocus="false" ClipboardEnabled="true" MaskType="Number" />
<asp:TextBox ID="edtPROJ_Leader_Phone" runat="server" Text='<%# Bind("PROJ_Leader_Phone") %>' ></asp:TextBox>

Lorsque ma vue détaillée est affichée pour être modifiée, la zone de texte affiche (_23)456-7890 pour le nombre entier 1234567890. Il convient également de noter que si la propriété MaskType="Number" est supprimée, la zone de texte s'affiche : (234)567-890_ . Je voudrais bien sûr que la zone de texte affiche (123)-546-67890 après la reliure.

1voto

Zach Skinner Points 69

1voto

Le problème pourrait être que vous n'utilisez pas les "caractères d'échappement" pour vos "(", ")" et "-".

Vous pourriez changer votre masque de

Mask="(999)999-9999"

à

Mask="\(999\)999\-9999"

Selon la documentation, il n'y a pas de "(", ")", ou "-", donc vous pouvez lui demander de faire quelque chose d'inattendu. Dans la section sur les masques...

/ - Séparateur de date
  • Séparateur de temps

. - Séparateur décimal

, - Mille séparateurs

\ - Caractère d'échappement

{ - Délimiteur initial pour la répétition des masques

} - Délimiteur final pour la répétition des masques

Exemples

9999999 - Sept caractères numériques

99/99 - Quatre caractères numériques séparés au milieu par un "/".

http://www.asp.net/ajaxlibrary/act_MaskedEdit.ashx

0voto

Smur Points 1380

J'ai eu le même problème, et ce qui l'a résolu pour moi a été de changer la propriété de MaskedEditExtender
"ClearMaskOnLostFocus" à True.

0voto

f.belhocine Points 1

J'ai eu le même problème aussi, et :

  1. Faire une déspécialisation dans le masque comme :

        Mask="\(999\)999\-9999",
  2. Avec ClearMaskOnLostFocus réglé sur true.

J'ai résolu le problème.

Merci pour tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X