2016-05-19 10 views
0

Ich kann nicht herausfinden, warum mein einziges Feld (Telefonnummer) nicht seinen MaskedEditExtender hält, nachdem Sie wegklicken, während die anderen gut funktionieren. Ich habe die Eigenschaften und Kontrollen verglichen und sie sind alle gleich.MaskedEditExtender nicht halten Maske nach dem Klicken weg

Ich vermute, dass es etwas mit meinem Validierungsausdruck zu tun hat, der nicht mit meiner Maske übereinstimmt, aber als ich versuchte, die Ausnahmen für die Symbole [() und -] hinzuzufügen, hat es nicht funktioniert (oder ich habe es falsch gemacht)).

Das Problemkind:

<div class="col-xs-6"> 
    <asp:TextBox 
     runat="server" 
     ID="TextBox_PhoneNumber" 
     class="form-control" 
     Style="max-width: 145px" /> 
    <asp:RegularExpressionValidator 
     ID="RegularExpressionValidator_PhoneNumber" 
     runat="server" 
     ControlToValidate="TextBox_PhoneNumber" 
     ErrorMessage="Invalid phone number." 
     ValidationExpression="^[2-9]\d{2}\d{3}\d{4}$" 
     Display="Dynamic" 
     SetFocusOnError="True" 
     Font-Bold="true" 
     ForeColor="red" 
     ValidationGroup="ValidationGroup_Main" /> 
    <asp:RequiredFieldValidator 
     runat="server" 
     ID="RequiredFieldValidator_PhoneNumber" 
     ControlToValidate="TextBox_PhoneNumber" 
     ErrorMessage="Employee Info: Phone Number is blank." 
     Text="Required" 
     class="text-right" 
     Display="Dynamic" 
     Font-Bold="true" 
     ForeColor="red" 
     ValidationGroup="ValidationGroup_Main" /> 
    <ajaxToolkit:MaskedEditExtender ID="maskededitextender_PhoneNumber" runat="server" TargetControlID="TextBox_PhoneNumber" Mask="(999) 999-9999" MaskType="Number" AcceptNegative="None" AutoComplete="false" /> 

Resultierende in (während der Telefonnummer eingeben):

enter image description here

in Resultierende (nach nach Eingabe Klick entfernt):

enter image description here

Wie c Und bekomme ich diese Maske zu kleben?

Antwort

0

es herausgefunden ich:

Im „MaskedEditExtender“ Ich habe diese Kontrolle hinzuzufügen benötigt:

ClearMaskOnLostFocus="false" 

Dies zwingt die Maske zu allen Zeiten zu bleiben. Ich habe dies jetzt auch auf alle meine anderen Masken angewendet (Daten, Postleitzahl, usw.).

Der Grund, warum meine Datumsfelder dieses Problem nicht hatten, liegt daran, dass "MaskType" des "MaskedEditExtender" auf "Date" gesetzt wurde. Es gibt keinen für die Telefonnummer, und daher behandelte er sie entweder als Nummer oder als nichts, und beide haben keine standardmäßige Telefonnummernformatierung wie Date.

Allerdings hat dies meine ValidationExpression in der Regex (weil es den Validierungsausdruck als Teil der Daten gezählt hat, und daher musste ich die Formatierung hinzufügen, die meine Maske zu meinem Ausdruck verwendete), aber ich habe es einfach so eingestellt:

ValidationExpression="^\([2-9]\d{2}\) \d{3}\-\d{4}$" 

Erfolg!

enter image description here

Hope this jemand anderes hilft.

Verwandte Themen