[英]How to call a private void keypress event handler from client side using C# or ASP.net to allow only numbers into textbox
我從未學過ASP.net或C#,但我正在嘗試使用ASP.net創建僅允許輸入數字的文本框。 我正在使用以下代碼在Default.aspx中定義我的文本框:
<asp:TextBox runat="server" ID="StudentNo"
autopostback="true"
OnTextChanged="StudentNo_KeyPress"
style="margin-left:20px; width:70px;"/>
但是, OnTextChanged
不會從服務器端頁面(Default.aspx.cs)調用任何內容,這是我為此使用的代碼:
using System;
using System.Collections;
...
using System.Data;
using System.Windows.Forms
private void StudentNo_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar)
&& e.KeyChar != '.')
{
e.Handled = true;
}
}
我嘗試只給相關位加上正確的縮進,但我擔心它不會起作用。 很抱歉,如果這是一個非常基本的問題,但是正如我所說,我從未使用這兩種語言進行編碼。 我不允許使用JavaScript或AJAX,只能使用C#和ASP.net。
任何建議或替代解決方案都很棒。 我已經嘗試過使用RangeValidator
, RegularExpressionValidator
, RequiredFieldValidator
和CustomValidator
,但這些都沒有用。
在此先感謝您的幫助。 如果您需要更多信息,請告訴我。
使用ASP.NET驗證服務器控件使您步入正確的道路。
通過以下方式使用RegularExpressionValidator:
<asp:TextBox id="txtNumber" runat="server" />
<asp:RegularExpressionValidator id="regexValidator" runat="server"
ControlToValidate="txtNumber" ErrorMessage="You must enter a number"
ValidationExpression="^\d+$" />
如果您想輸入一個數字,也可以添加一個:
<asp:RequiredFieldValidator id="reqValidator" runat="server"
ControlToValidate="txtNumber" ErrorMessage="You must enter a number" />
請注意,必須將“ ControlToValidate”屬性設置為要驗證的控件。 對於您的示例,值將為“ StudentNo”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.