2011-08-05 21 views
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

您是否嘗試將type屬性設置爲整數?

<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扔你,類型是針對RangeValidator控制有效的屬性):

BaseCompareValidator.Type Property

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"); 
} 
相關問題