Maskコントロールを使った入力処理
Maskコントロールを使ってあらかじめ入力書式を設定し、その書式のデータ以外の入力を受けつけないようにできます。このコントロールの特徴は、コードを一切書かずにプロパティの設定だけで入力データに制限を設けることができるようになっている点です。
Maskコントロールでは、入力欄が空欄の際に表示するプロンプト文字列を設定でき、また大文字小文字を自動的に変換する機能を持っています。
書式設定では、デフォルトで電話番号と郵便番号入力の書式が設定されていますが、独自の書式を設定することもできます。書式設定は簡単で、Maskコントロールのスマートタグから[書式を設定]を選び、ダイアログで書式を設定します。
また、[AutoConvertを有効にする]にチェックがあれば、大文字・小文字の自動変換が行われます。[AutoPostBackを有効にする]を使うと、コントロールの値が変更されてフォーカスを失ったときに、自動的にサーバにポストバックするかどうかを設定できます。
Maskコントロールに入力された値を取得するには、ValueプロパティまたはTextプロパティを参照します。Textプロパティは、リテラル文字列とプロンプト文字を含んだ値を、Valueプロパティはリテラル文字列とプロンプト文字列を除いたコントロール内の文字列を、取得または設定できます。
例えば、Maskコントロールに「〒 111-2222」と入力されているときは、Textプロパティにはそのまま「〒 111-2222」が格納され、Valueプロパティの値は「1112222」となります。
文字種検証コントロール(CharacterTypeValidatorコントロール)を使った処理
前回の記事では、テキストボックスの入力にEditコントロールを使用し、特定の文字種だけしか入力を受けつけないように入力文字に制限を加えましたが、ASP.NET標準のTextBoxコントロールを使用し、入力文字種のチェックを行うこともできます。
InputMan for ASP.NETの検証コントロールの1つに、CharacterTypeValidatorコントロールがあります。このコントロールは、ユーザーがコントロールに入力した文字の文字種を検証できます。
使い方は、まずページにTextBoxコントロールを配置し、その横にCharacterTypeValidatorコントロールを配置します。そして、CharacterTypeValidatorコントロールの「ControlToValidate」プロパティでTextBoxコントロールのオブジェクト名を設定します。これで、2つのコントロールが関連付けられます。
次に、CharacterTypeValidatorコントロールの「CharacterSet」プロパティで、対象のTextBoxコントロールに入力可能な文字種を次のキーワードで設定します。
全角 | 半角 | 説明 |
---|---|---|
A | A | 大文字のアルファベット(A~Z) |
a | a | 小文字のアルファベット(a~z) |
K | K | カタカナ(促音・拗音の小書き表記あり) |
9 | 9 | 数字(0~9) |
# | # | 数字および数字関連記号(0~9、+ - $ % \ , .) |
@ | @ | 記号 |
B | B | 2進数(0または1) |
X | X | 16進数(0~9、A~F) |
J | - | ひらがな(促音・拗音の小書き表記あり) |
Z | - | 空白文字以外のすべての全角文字 |
- | H | 空白文字以外のすべての半角文字 |
N | N | カタカナ(促音・拗音の小書き表記なし) |
G | - | ひらがな(促音・拗音の小書き表記なし) |
- | ^ | 指定した書式に含まれないすべての文字 |
T | - | サロゲート ペア文字 |
D | - | 空白文字以外の2バイト文字(サロゲート ペア文字、空白文字を除いた全角文字) |
S | S | 空白文字 |
そして、CharacterTypeValidatorコントロールの「ErrorMessage」プロパティに、設定した文字種以外の文字が入力された場合のエラーメッセージを設定します。