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