- PR -

DataGrid内のテキストボックス

1
投稿者投稿内容
なべぞう
ベテラン
会議室デビュー日: 2003/07/07
投稿数: 98
お住まい・勤務地: 岡山県
投稿日時: 2004-12-16 22:55
こんばんは。
DataGrid内のテキストボックスへ入力された
値が数字のみかチェックし英字、記号が入力
されていればアラートを表示する方法を探し
ています。

現在
 ・MAXLENGTH指定で桁数制限
 ・スタイルシートでIME無効
の措置は行っています。

がDataGrid内にある可変のテキストボックス
を特定し入力値をチェックする方法がわから
ず躓いています。

サーバ側でやるのが確実なのかな〜とも
思い始めたところですが。。

何か良い方法があれば教えて頂ければ幸いで
す。



とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-12-16 23:11
こんばんは。

正規表現はどうですか?

Webアプリですね?

サーバー側でやるなら正規表現クラス
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconusingregularexpressionclasses.asp

があるでしょうし、クライアントでもJavaScriptからでも正規表現が使えるんでは
ないでしょうか。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2004-12-17 06:07
引用:

DataGrid内のテキストボックスへ入力された
値が数字のみかチェックし英字、記号が入力
されていればアラートを表示する方法を探し
ています。


CompareValidatorコントロールのOperatorプロパティにDataTypeCheck、TypeプロパティにIntegerを指定すると数字のチェックができます。

この他、RegularExpressionValidatorコントロールを使用することも可能です。

予断ですが、DataGridで検証コントロールを使用するには、テンプレートカラムを使用します。

テンプレートカラムをダイナミックに追加するサンプル:
http://www.friendlysw.com/samples/articles/Goto.aspx?id=030921-2
http://www.friendlysw.com/samples/articles/Goto.aspx?id=030921-3



[ メッセージ編集済み 編集者: Access 編集日時 2004-12-17 06:13 ]
なべぞう
ベテラン
会議室デビュー日: 2003/07/07
投稿数: 98
お住まい・勤務地: 岡山県
投稿日時: 2004-12-17 11:10
とっとさん、Accessさんレスありがとうございました!!。
正規表現は何となく苦手なのでまだ試せていません。

AccessさんのCompareValidatorコントロールは試しました。
以下新たな疑問点。
 ・DataGridの外に張ったCompareValidatorはGrid内のテキストは検知できない
  のでしょうか。
 ・エラーメッセージの表示でなくスクリプトのalert文の実行はできないでしょ
  うか。

とりあえず。
いまのところは
下記のスクリプトで入力値チェックを施しています。
フォーム内にはGrid内以外にinputボタン、入力エリアが6つあり
Gridの前に5つあるので、ループを5からスタート。
Gridの後に1つあるので、ループを総数−1で終了
させてます。

function checkGridValue() {
 var len = document.all.tags("INPUT").length - 1;
 var ret;
 var ret2;
 var name;

 for (i = 5; i < len ; i++) {
  obj = document.all.tags("INPUT")(i);
  ret = 数字かどうかチェック(obj.value);
  if(ret == false){
   ret2 = 偶数かどうかちぇっく(i);
   if(ret2 == true){
    alert("左側のテキストボックスには数字のみを入力してください。");
    obj.focus()
    obj.select();
    return false;
   }else{
    alert("右側のテキストボックスには数字のみを入力してください。");
    obj.focus();
obj.select();
return false;
}
  }
 }
 return true;
}

1

スキルアップ/キャリアアップ(JOB@IT)