如何以编程方式设置范围验证器的最大值?

6

我希望在文本框上设置一个范围验证器,以防止某人订购超过可用数量的产品。我已经将可用数量存储在数据库中,并且我已将范围验证器的最大值属性数据绑定到数据库中的字段。

<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及以上会触发错误消息。我猜这与它比较字符串有关,但我不知道如何将其更改为比较数字。
3个回答

5

3
你尝试过将类型属性设置为整数吗?
<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">
</asp:RangeValidator>    

更多信息可以在这里找到(不要被标题中的BaseCompareValidator所迷惑,Type是RangeValidator控件的一个有效属性):

BaseCompareValidator.Type 属性


0
protected void RangeValidator5_Init(object sender, EventArgs e)
{
    ((RangeValidator)sender).MaximumValue = DateTime.Today.ToString("yyyy/MM/dd");
    ((RangeValidator)sender).MinimumValue = DateTime.Today.AddYears(-100).ToString("yyyy/MM/dd");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接