- PR -

DataGridのページ移動でのValidator

1
投稿者投稿内容
へぼへぼ
会議室デビュー日: 2005/11/14
投稿数: 3
投稿日時: 2005-11-14 13:05
はじめまして。
.NET(C#)でwebアプリケーションの開発を始めて間もないのですが、
DataGridのページ移動でValidatorによるチェックを行う事はできるのでしょうか?

初歩の初歩の質問で申し訳ありません。
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-11-15 12:14
返答ないようなので。。。出来ると思いますよ。
というより、実際どんな事がやりたいのか分かりません。

もう少し詳しくお願いします。

[ メッセージ編集済み 編集者: SE卵 編集日時 2005-11-15 12:14 ]
へぼへぼ
会議室デビュー日: 2005/11/14
投稿数: 3
投稿日時: 2005-11-16 17:48
説明不足で申し訳ありません。

DBのデータをDataGridに表示しましてその1項目にTemplateでTextBoxをつくり編集できるようにしました。
そしてそのTextBoxにRegularExpressionValidatorをつけて正規表現による属性の入力チェックするようにしました。
登録用にButtonを作りまして、そのButtonをクリックした場合にはエラーメッセージが表示されるのですが、
DataGridのページング(例:123)をクリックした時にもチェックをし、エラー時にエラーメッセージを表示するようにしたいのですが、
どのようにすればよいのか、ということでした。
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-11-17 09:37
どうも、SE卵です。

簡単なサンプルでやってみましたが、DataGridのページング時には
Validatorチェックは有効ではないみたいですね。という事で、ペー
ジングのボタン(1、2、3)のCausesValidation=trueにしてあげま
しょう。

しかし、プロパティの設定かなんかにあるだろうと思いきや。。。
ありませんでした。(ざっとしか探してないんで、ひょっとするとあるかも)

こうなったら、コードで実装しかありません。
VB.NETのコード書きますけど、へぼへぼさんの使用言語が違ったらごめんなさい。
DataGridのItemCreatedイベント内で、ページ番号を見つけ、CausesValidation
を有効にしてあげる。
コード:

Private Sub dgrdData_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgrdData.ItemCreated
Dim lctlItem As Control '' コントロール

'' ページャー部にあるコントロール分ループする
For Each lctlItem In CType(e.Item.Cells(0), TableCell).Controls
If lctlItem.GetType.Name.Equals("DataGridLinkButton") Then
'' ページ番号リンクボタン(DataGridLinkButton)
CType(lctlItem, LinkButton).CausesValidation = True
End If
Next
End Sub



こちらの環境ではこれで大丈夫だったけど、もし駄目なら教えてくださいね。

[ メッセージ編集済み 編集者: SE卵 編集日時 2005-11-17 09:40 ]

[ メッセージ編集済み 編集者: SE卵 編集日時 2005-11-17 09:41 ]
へぼへぼ
会議室デビュー日: 2005/11/14
投稿数: 3
投稿日時: 2005-11-17 11:27
返信ありがとうございます、SE卵さん。

チェックはコード実装しかありませんか…

C#で作成している為、VBから変換しようと試みましたがVB未経験であるのと、
C#を始めたばかりなのでforeach-inのコレクションの記述が解りませんでした。

ここまで教えていただいて申し訳ありませんが、こちらもご教授お願いできますでしょうか
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-11-17 12:32
http://www.atmarkit.co.jp/fdotnet/basics/oop07/oop07_03.html
http://support.microsoft.com/default.aspx?scid=kb;ja;307484
http://www.atmarkit.co.jp/fdotnet/dotnettips/125hashtable/hashtable.html

少しは調べましょうね
1

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