2010-06-03 16 views
6

Tôi đang gặp vấn đề với các điều khiển ASP.NET RangeValidator.ASP.NET RangeValidator không thể làm ngay cả toán cơ bản nhất?

Tôi muốn cho phép người dùng nhập số tiền chiết khấu và số tiền này phải là số âm (< $ 0,00). Tôi muốn xác minh rằng số lượng nhập vào một textbox là một giá trị tiêu cực, vì vậy tôi có điều này trong đánh dấu trang của tôi:

<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" /> 

và tôi cố gắng để thiết lập các MinimumValue động trong mã của tôi trước khi trang được kết xuất - để giá trị tương đương âm của giá mặt hàng của tôi. Vì vậy, nếu mục là $ 69, tôi muốn thiết lập giá trị tối thiểu để - $ 69:

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

Rắc rối là: Tôi tiếp tục nhận được thông báo lỗi này:

Giá trị tối đa 0.0 không thể ít hơn các -69,00 giá trị tối thiểu cho rvDiscount

WTF?!?! ??! Tôi đến từ đâu, -69 $ IS ít hơn $ 0 ...... vậy vấn đề là gì?

Và quan trọng hơn: giải pháp là gì?

Trả lời

19

Nó không cố gắng để làm toán, nó làm một so sánh chuỗi bởi vì bạn đã không nói với nó khác. Hãy thử thêm thuộc tính này:

Type="Double" 
+0

+1 bạn đã đóng đinh - ước gì tôi có thể +100! :-) Tôi biết tôi đã không nhìn thấy rừng cho cây bằng cách nào đó ...... Cảm ơn! –

+0

Bạn luôn có thể thưởng cho nó. ;) Có lẽ lạm dụng hệ thống mặc dù. Vui vẻ giúp đỡ. –

+1

Phải có giá trị đánh dấu ít nhất ...;) –

Các vấn đề liên quan