6

ASP.NET RangeValidator コントロールに問題があります。

ユーザーが割引金額を入力できるようにしたいのですが、この金額はマイナス (< $0.00) でなければなりません。テキスト ボックスに入力された金額が負の値であることを確認したいので、ページのマークアップに次のように記述します。

<asp:TextBox ID="tbxDiscount" runat="server" />
<asp:RangeValidator ID="rvDiscount" runat="server" ControlToValidate="tbxDiscount"
     MinimumValue="0.0" MaximumValue="0.0" EnableClientScript="true" 
     ErrorMessage="Please enter a negative value for a discount" />

そして、ページがレンダリングされる前にコードで MinimumValue を動的に設定しようとしました - 商品価格の負の値に相当します。したがって、商品が $69 の場合、最小値を - $69 に設定します。

rvDiscount.MinimumValue = (-1.0m * Price).ToString();

問題は、次のエラー メッセージが表示され続けることです。

最大値 0.0 は、rvDiscount の最小値 -69.00 より小さくすることはできません

なんだ?!?!??! 私がどこから来たのか、-69 $$0 未満です ...... では、何が問題なのですか?

さらに重要なことは、問題の解決策は何ですか??

4

1 に答える 1

20

数学をしようとしているのではなく、文字列の比較を行っているのです。この属性を追加してみてください:

Type="Double"
于 2010-06-03T11:35:31.627 に答える