我想在文本框上设置一个范围验证器,以防止有人订购的产品多于可用产品.我有可用的数量存储在数据库中,我将Ranged Validator的最大值属性数据绑定到数据库中的字段.
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlTovalidate="tbQuantity" display="Dynamic" ErrorMessage = "Can't Order More Than Quantity." ForeColor="Red" MaximumValue='<%# Eval("Quantity") %>' MinimumValue="0"></asp:RangeValidator>
但是,当我调试程序时,我得到一些意想不到的结果.
数量是17.
并且1不会触发错误消息,但2-9会触发,而10-17不会触发它,但是18和更高触发它.我猜这与它正在比较字符串的事实有关,但我不确定如何将它改为比较数字.
解决方法
默认范围验证器类型为string,将Type属性更改为Integer
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlTovalidate="tbQuantity" display="Dynamic" ErrorMessage="Can't Order More Than Quantity." ForeColor="Red" MaximumValue='<%# Eval("Quantity") %>' MinimumValue="0" Type="Integer" /> // <-- add type property of integer
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basecomparevalidator.type.aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。