簡體   English   中英

ASP.NET:在文本框中輸入非數字值時會產生錯誤消息?

[英]ASP.NET: produce an error message when a non-numeric value is entered in a textbox?

如果用戶在TextBox中輸入非數字值並按下Button,我想在Label上顯示錯誤消息。

我該如何實現?

如果您使用的是ASP.NET Web表單,則可能會有這樣的標記:

<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!" />

然后,您的后台代碼將需要一種方法來處理按鈕的click事件。 這將導致回發。

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);
   }
}

您是說只想允許數字嗎?

<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”之外,您還希望接受諸如“ 3.5”之類的十進制值,請在上面提供的RegularExpressionValidator中修改ValidationExpression以讀取“ ^ \\ d +(\\。\\ d +)?$”

假設您要檢查輸入是數字還是字符串(如果輸入是字符串,則顯示錯誤),可以使用int.TryParse函數執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM