[英]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.