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;"/>

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 だけです。

提案や代替ソリューションは素晴らしいでしょう。私はすでにRangeValidatorRegularExpressionValidatorRequiredFieldValidatorおよびを使用してみましCustomValidatorたが、どれもまったく役に立ちませんでした。

事前に感謝します。どんな助けでも大歓迎です。さらに詳しい情報が必要な場合は、お知らせください。

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 に答える