繁体   English   中英

如何使用C#或ASP.net从客户端调用私有void按键事件处理程序,以仅允许数字进入文本框

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

任何建议或替代解决方案都很棒。 我已经尝试过使用RangeValidatorRegularExpressionValidatorRequiredFieldValidatorCustomValidator ,但这些都没有用。

在此先感谢您的帮助。 如果您需要更多信息,请告诉我。

使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM