2016-04-28 3 views
0

、最小完全、かつ検証例(フレームワーク3.5):CompareValidatorは千単位の区切り文字を許可しません - これはバグか設計上の違いですか?

<%@ 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を入力し、TABを押してください。

期待される結果:何もありません。
実際の結果:This is not a double.

のはなぜ比較が成功することを期待します:the documentation saysので:は「値が指定されたデータ型に変換できない場合の検証が失敗しました。」しかし、Convert.ToDouble("1,234.0", CultureInfo.GetCultureInfo("en-US"))succeeds

私の質問:

はこれが(私は、Microsoft Connectに報告しなければならない)バグですか、私はそれがこのCompareValidatorがの残りの部分とは異なる変換規則を使用していることを述べている文書の一部を逃しました。ネットフレームワーク?

答えて

0

Type = "Double"を使用するのではなく、Type = "Currency"を使用してみてください。コンマ付きの値とコンマなしの値を受け入れる必要がありますが、小数点以下2桁を受け付けません。

+0

ありがとうございました。これは非常に便利なコメントですが、残念ながら質問には答えません(質問はテキストの下に太字で記されています)。 – Heinzi

関連する問題