- - PR -
WEBコントロールのDBGridで、データ表示のイベントを横取りするには?
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-06 14:44
現在、ASP.NET(VB.NET) + SQL Server 2000 でアプリケーション開発してるのですが、
SQL Server自身に目的の関数(文字列を複雑に加工する)がないため、VB.NETで作っ ています。 VB.NETからSQLを発行し、結果のデータセットを取得して、その後にDBGridに表示され る前に、取得したデータセットの列ごとに関数をかまして文字列加工した結果を貼り付 けるようにしたいのです。 逆に、DBGridのデータを更新した場合、DBGrid自身が更新系クエリーを発酵する前に データを関数で変換かけてから更新したいのです。 このように、DBGridの列/行ごとに表示、変更があった場合のイベントを横取りして データ加工することは可能でしょうか? ご存知の方はおられませんでしょうか? | ||||||||
|
投稿日時: 2005-06-07 06:13
行毎であれば不可能ではありません。DBGridのイベント一覧を見れば、データをバインドする毎に発生するイベントが見えてくるでしょう。 変更があった場合も、ASP.NETであれば簡単です。「確定」ボタンを押しているはずですから、そのイベントを拾えばいいです。 _________________ | ||||||||
|
投稿日時: 2005-06-08 08:48
おはようございます。
返答ありがとうございます。 もう少し具体的な説明をしますと・・・ ある個人情報の入ったテーブルが存在します。 そのあるテーブルに、データを挿入/更新するときは、個人情報の部分に関しては VB.NETでクラス化した暗号化関数を使って暗号化した結果をSQL文に埋め込み、実行 します。 データを取り出す場合は、SQLでデータ取得した結果に復号化で戻した結果をコント ロールに貼り付けます。 テキストボックスやラベルなど普通のコントロールなら、処理の途中で普通に暗号化/ 復号化関数をかませばいいですが、データコントロール(とくにDBGrid)で、それを 実現する方法を模索しています。 で、DBGridを継承して、そういった暗号化/複合化機能を持ったDBGridを自作したい と考えています。 そのために、DBGridにデータ貼り付く直前、更新系処理が走る直前のイベントを取れ ないものかと考えました。 データをバインドする毎に発生するイベントを探してみます。 | ||||||||
|
投稿日時: 2005-06-08 09:41
場合によるけど
ItemDataBound
ItemCommand _________________ 「伝える」とは「人に云う」と書く。 http://d.hatena.ne.jp/NAL-6295/ | ||||||||
|
投稿日時: 2005-06-08 20:47
DataGridは表示のための道具です。それに暗号/復号処理を持たせるのは、どうかと思います。
私なら、DataTableを直接バインドするのではなく、表示する情報などを持つクラスを作り、その中で暗号/復号処理を実装します。そのまま参照するプロパティと、暗号化し(て、Base64エンコードし)た結果を参照するプロパティを用意します。表示系にはそのまま参照するプロパティ、データベースには暗号化するプロパティを参照させます。
_________________ |
1