テキストボックスに必要な検証セットアップがありますが、整数であることも確認する必要があります。
これどうやってするの?
懸念しているのが、フィールドに整数が含まれている(つまり、範囲に関係していない)ことだけである場合、 CompareValidator
を Operator
DataTypeCheck
に設定されたプロパティ:
<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer"
ControlToValidate="ValueTextBox" ErrorMessage="Value must be a whole number" />
有効な特定の範囲の値がある場合(おそらくそうです)、次のように RangeValidator
を使用できます。
<asp:RangeValidator runat="server" Type="Integer"
MinimumValue="0" MaximumValue="400" ControlToValidate="ValueTextBox"
ErrorMessage="Value must be a whole number between 0 and 400" />
これらは、TextBoxにテキストがある場合にのみ検証されるため、 RequiredFieldValidator
も保持する必要があります。
@ Mahin が言ったように、必ず Page.IsValid
サーバー側のプロパティ。それ以外の場合、バリデーターはJavaScriptが有効なユーザーに対してのみ機能します。
これは私にはうまくいきます:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="YourTextBoxID"
ErrorMessage="Only numeric allowed." ForeColor="Red"
ValidationExpression="^[0-9]*$" ValidationGroup="NumericValidate">*
</asp:RegularExpressionValidator>
送信ボタンにもValidationGroup="NumericValidate"
を追加する必要があると思います。
Int32.TryParse。 を使用します
int integer;
Int32.TryParse(Textbox.Text, out integer)
Boolを返すので、有効な整数が入力されたかどうかを確認できます。
正規表現検証ツールをテキストボックスに添付し、その表現を次のようにします。
^\d+$
もちろん、サーバー側の検証も行います。
これを処理する方法はいくつかあります。 RequiredFieldValidatorとRangeValidatorを追加することができます(それがケースで機能する場合)、またはCustomFieldValidatorを追加することができます。
CustomFieldValidatorへのリンク: http://msdn.Microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator%28VS.71%29.aspx
ASP.NET検証に関するMSDN記事へのリンク: http://msdn.Microsoft.com/en-us/library/aa479045.aspx
Visual Studioは、範囲チェックと型チェックのサポートを統合しました:-
これを試してください:-範囲チェックの場合特定の範囲の数値を検証/チェックする前に、マークアップビューからデザインビューに切り替えます。
「表示」>「ツールボックス」>「検証」
RangeValidatorを設計ページにドラッグして、エラーメッセージを表示します(ユーザーが範囲外の値を入力している場合はもちろん)RangeValidatorコントロールをクリックします。右クリックしてプロパティを選択します。 [プロパティ]ウィンドウ(通常はソリューションバーの下に開きます)で[エラーメッセージ]を選択します。書く :-
番号は範囲内でなければなりません。
コントロールを選択して検証し、ドロップダウンからTextboxIDを選択します(または、とにかく書き込みます)。プロパティバー自体に入力し、整数を選択します。
そのすぐ上に最大値と最小値が表示されます。希望の数値を入力します。
タイプチェック用(範囲なし)
特定の範囲の数値を検証/確認する前に、マークアップビューからデザインビューに切り替えます。
「表示」>「ツールボックス」>「検証」
CompareValidatorを、エラーメッセージを表示するデザインページにドラッグします(もちろん、ユーザーがテキストを入力している場合)。 CompareValidatorコントロールをクリックします。右クリックしてプロパティを選択します。 [プロパティ]ウィンドウ(通常はソリューションバーの下に開きます)で[エラーメッセージ]を選択します。書く:-
値は数値でなければなりません。
次に、ControltoValidateオプションを見つけて、その中にcontrolID名を書き込みます(または、ドロップダウンから選択することもできます)。初期化 。
座っている
代替 aspxページに次のコードを記述できます:-<%-範囲なしで検証する-%>
これにはJavaスクリプトを使用できます。
<asp:TextBox ID="textbox1" runat="server" Width="150px" MaxLength="8" onkeypress="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;"></asp:TextBox>
<script language="javascript" type="text/javascript">
function fixedlength(textboxID, keyEvent, maxlength) {
//validation for digits upto 'maxlength' defined by caller function
if (textboxID.value.length > maxlength) {
textboxID.value = textboxID.value.substr(0, maxlength);
}
else if (textboxID.value.length < maxlength || textboxID.value.length == maxlength) {
textboxID.value = textboxID.value.replace(/[^\d]+/g, '');
return true;
}
else
return false;
}
</script>
<asp:TextBox ID="txtNextVisit" runat="server" MaxLength="2" onblur="return fixedlength(this, event, 2);" onkeypress="return fixedlength(this, event, 2);" onkeyup="return fixedlength(this, event, 2);"></asp:TextBox>
http://msdn.Microsoft.com/en-us/library/ad548tzy%28VS.71%29.aspx
サーバー検証コントロールを使用するときは、ブラウザでJavaScriptを無効にできるという事実に注意する必要があります。したがって、Page.IsValidプロパティを常にサーバー側で使用する必要があります。
ボタンをダブルクリックして、次のコードを使用します:-
protected void button_click(object sender,EventArgs e)
{
int parsedValue;
if(int.TryParse(!txt.Text,out parsedValue))
{
Label.Text = "Please specify a number only !!"; //Will put a text in a label so make
//sure
//you have a label
}
else
{
// do what you want to
}