簡體   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