2012-01-11 63 views
13

我有一個連接到它要求兩者和範圍驗證,其中代碼看起來像這樣的asp:textboxasp.net範圍驗證的文本框

ASP:

<asp:TextBox ID="textBox1" runat="server" CausesValidation="true"></asp:TextBox> 
<asp:RangeValidator ID="rangeValidator1" runat="server" ControlToValidate="textBox1" MaximumValue="1" MinimumValue="0" 
    ValidationGroup="valid" ForeColor="Red" ErrorMessage="Out of Range" /> 
<asp:RequiredFieldValidator ID="requiredValidator1" runat="server" ControlToValidate="textBox1" 
    ValidationGroup="valid" ForeColor="Red" ErrorMessage="Cannot be blank" /> 

而當頁面動態加載(快速回調後),我有代碼應該將RangeValidator的MaximumValue更改爲更具體的值。下面是該代碼:

rangeValidator1.MaximumValue = GetMaxValue(params).ToString(); 

現在,我已經設置斷點,rangeValidator1.MaximumValue被正確設定,但是,在頁面加載的時候,我期待在編譯客戶端的JavaScript,它看來,最大值仍然只有1.

更令我困惑的是,只要第一個數字是'1',任何輸入的整數都會通過。因此,如果maxValue爲假定爲「1234567」,則「1」將與「12345678910」匹配。但「2」不會。也不會「3000」或「46000」。

其他人有沒有與文本框上的RangeValidators類似的問題?

+1

textbox1看起來不在同一個ValidationGroup中,而id是textBox1(注意大寫字母B)這只是一個錯字嗎? – 2012-01-11 20:50:21

+1

另外,RangeValidator沒有Type字段嗎? – 2012-01-11 20:51:28

+0

關於您的第一條評論,很抱歉,那是一個錯字。當我將代碼複製到SO時,我更改了ID,以便更易於閱讀。他們*做*匹配。 – 2012-01-11 20:59:48

回答

19

RangeValidator處理多種類型的驗證。你應該確保將Type設置爲Integer。或者什麼是合適的。