2010-05-09 4 views
0

사용자가 TextBox에 숫자가 아닌 값을 입력하고 버튼을 누르면 레이블에 오류 메시지를 표시하려고합니다.ASP.NET : 숫자가 아닌 값을 텍스트 상자에 입력하면 오류 메시지가 나타 납니까?

어떻게하면됩니까?

<asp:TextBox runat="server" ID="TextBox1" Text="Default Text!" /> 
<asp:Button ID="Button1" runat="server" Text="Click Me" OnClick="ChangeIt" /> 
<br /> 
<br /> 
<asp:Label ID="Label1" runat="server" Text="default!" /> 

는 그런 다음 코드 숨김 버튼의 클릭 이벤트를 처리하는 방법이 필요합니다

+0

질문을 이해하십시오. 단추를 클릭 할 때 winform에서 레이블 텍스트를 변경하는 방법을 묻는 중입니까? –

+0

@ilkdrl : ASP.NET WebForms, Windows Forms, WPF 등을위한 것입니까? –

+0

WinForms, WPF 또는 ASP.NET? 그들은 모두 TextBox를 가지고 있습니다. –

답변

1

숫자 만 허용 하시겠습니까?

<asp:TextBox runat="server" ID="TextBox1" /> 
<asp:RegularExpressionValidator runat="server" ID="RegularExpressionValidator1" ControlToValidate="TextBox1" ErrorMessage="Digits only, please" ValidationExpression="^\d+$" /> 

이 경우 숫자 만 허용되지만 상자를 완전히 건너 뛸 수도 있습니다. 당신이 필요한 확인하려면이 추가

<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" ControlToValidate="TextBox1" ErrorMessage="Required" /> 

업데이트 : 그냥 "3"내가 제공 한 RegularExpressionValidator에 ValidationExpression을 수정뿐만 아니라 "3.5"과 같은 소수점 값을 허용하려는 경우

2

당신은 ASP.NET의 웹 폼으로 작업하는 경우는, 아마 당신은이 같은 일부 마크 업을 가지고있다. 이로 인해 포스트 백이 발생합니다.

protected void ChangeIt(Object sender,EventArgs e) 
{ 
    // ensure that the value in the textbox is numbers only. 
    // there are always questions here whether you care about 
    // decimals, negative numbers, etc. Implement it as you see fit. 
    string userEnteredText = TextBox1.Text.Trim(); 
    long resultantNumber; 

    if (!long.TryParse(userEnteredText, out resultantNumber)) 
    { 
     Label1.Text = string.Format("It looks like this isn't a number: '{0}'", 
        userEnteredText); 
    } 
} 
0

입력이 숫자인지 또는 문자열인지를 확인하고 (입력이 문자열 인 경우 오류를 표시하는 것으로 가정) 가정하면 "^ \ d + (\. \ d +)? $" 다음과 같이 int.TryParse 함수를 사용하는 것과 같습니다.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    int readValue; 
    if (!int.TryParse(TextBox1.Text, out readValue)) 
     Label1.Text = "Error"; 
} 
관련 문제