2016-04-28 5 views
0

Minimal, Vollständig, und prüfbare Beispiel (Framework 3.5):CompareValidator erlaubt keine Tausendertrennzeichen - ist das ein Fehler oder ein Designfehler?

<%@ Page Language="C#" Culture="en-US" %> 

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<body> 
    <form id="form1" runat="server"> 
     <asp:TextBox ID="txt" runat="server" /> 
     <asp:CompareValidator runat="server" ControlToValidate="txt" Operator="DataTypeCheck" Type="Double" Text="This is not a double." /> 
     <asp:Button runat="server" Text="Do Postback" /> 
    </form> 
</body> 
</html> 

1,234.0 in dem Textfeld ein und TAB getroffen.

Erwartetes Ergebnis: Nichts.
Tatsächliches Ergebnis: This is not a double.

Warum erwarte ich den Vergleich erfolgreich zu sein: Weil the documentation says: „Validierung schlägt fehl, wenn der Wert nicht auf den angegebenen Datentyp umgewandelt werden kann.“, aber Convert.ToDouble("1,234.0", CultureInfo.GetCultureInfo("en-US"))succeeds.

Meine Frage:

Ist das ein Fehler (was ich zu Microsoft Connect mitteilen) oder habe ich verpasst, einen Teil der Dokumentation, wo es heißt, dass CompareValidator unterschiedliche Umrechnungsregeln als der Rest der verwendet .NET Framework?

Antwort

0

Anstatt Type = "Double" zu verwenden, versuchen Sie Type = "Currency". Er sollte Werte mit und ohne Komma akzeptieren, akzeptiert jedoch nicht mehr als 2 Dezimalstellen.

+0

Danke. Dies ist ein sehr nützlicher Kommentar, aber leider beantwortet er die Frage nicht (die Frage ist am Ende meines Textes fett geschrieben). – Heinzi

Verwandte Themen