2011-02-17 101 views
0

我正在使用C#3.5,我在項目中遇到問題,我想使文本框只接受數字。如果用戶嘗試輸入字符,則應該顯示一條消息,如「請僅輸入數字」,並且在另一個文本框中必須接受有效的電子郵件ID消息。它必須顯示無效的用戶標識。c#3.5文本框驗證

+0

C#不沒有3.5版本,這是.NET Framework版本 - 你可能意思是C#3.0。 – BoltClock 2011-02-17 11:39:57

+0

這個驗證是否應該在回發上運行,或者只要用戶輸入框的內容就運行?如果在回發中,你需要使用RegularExpressionValidator,否則你需要一些JavaScript來做到這一點。 – diceler 2011-02-17 11:41:23

回答

0

在這兩種情況下,您需要在按鈕的事件處理程序中定義驗證例程(我假設存在某種按鈕)。

還有其他方法可以實現這一點,但這是最簡單的。

1

您可以使用驗證控件,然後正則表達式
對於號碼,您可以使用CompareValidator

<asp:CompareValidator ID="CompareValidator1" runat="server" 
ErrorMessage="CompareValidator" Operator="DataTypeCheck" Type="Integer"></asp:CompareValidator> 


和電子郵件的RegularExpressionValidator
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>

1
function onlyNumbers(evt) 
{  
    var e = event || evt; 
// for trans-browser compatibility  
    var charCode = e.which || e.keyCode;  
    if (charCode > 31 && (charCode < 48 || charCode > 57))   
     return false;  
    return true; 
} 

使用上述功能和應用它到文本框的onkeypress事件,上面是一個javascript,併爲另一個te xtbox使用必需的字段驗證器,它將工作。希望這會對你有所幫助。

0

通常在這種情況下,您可以使用KeyDown事件並在按下的鍵不是數字時將其取消。我不會向用戶顯示警報,他/她會看到只有數字被接受。

0
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     this.textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress); 
    } 

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     e.Handled = !char.IsDigit(e.KeyChar); 
    } 

} 
1

對於 「只有數字」 驗證您可以使用CompareValidatorOperator="DataTypeCheck"

<asp:CompareValidator runat="server" ErrorMessage="Only numbers" 
Type="Integer" ControlToValidate="YourOnlyNumbersTextBoxID" Operator="DataTypeCheck"/> 

對於 「電子郵件」 驗證你可能是最好關閉用RegularExpressionValidator

<asp:RegularExpressionValidator runat="server" ErrorMessage="Invalid email" 
ControlToValidate="YourEmailTextBoxID" ValidationExpression="[regex here]"/>