0

我从未学过 ASP.net 或 C#,但我正在尝试使用 ASP.net 创建一个仅允许输入数字的文本框。我正在使用以下代码在 Default.aspx 中定义我的文本框:

<asp:TextBox runat="server" ID="StudentNo" 
       autopostback="true"      
       OnTextChanged="StudentNo_KeyPress" 
       style="margin-left:20px; width:70px;"/>

但是没有从服务器端页面(Default.aspx.cs)调用任何东西,这OnTextChanged是我正在使用的代码:

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,它们都没有任何用处。RequiredFieldValidatorCustomValidator

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

4

1 回答 1

0

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

于 2013-05-10T03:37:02.150 回答