- PR -

ASP.NET2.0 + GridView で列が動的な表の実現方法

投稿者投稿内容
キノ2
会議室デビュー日: 2005/01/29
投稿数: 6
投稿日時: 2006-12-11 11:52
ASP.NET2.0 + GridView について質問があります。

DBのあるテーブルのレコード内容を元に単純な2次元の表を作成することは
GridViewで容易にできると思うのですが、
表の列の内容が動的に変化する、別テーブルのカラム要素である場合は
どの様に実現すれば宜しいのでしょうか?

例えば各ユーザがファイルを触った日付を一覧表示する表だとします。

■ file_table
fcode : ファイルコード
fname : ファイル名

■ user_table
uid : ユーザID
uname : ユーザ名

■ write_table
fcode : ファイルコード
uid : ユーザID
touch_date : 更新日


このDBを基に、ファイル名、ユーザ名、ファイル更新日の一覧を
作りたいのです。

     |ユーザ1|ユーザ2|ユーザ3|・・・
−−−−−+−−−−+−−−−+−−−−+−−−
ファイル1|12/11  |12/10  |10/20  |
ファイル2|11/28  |11/15  |12/10  |
ファイル3|11/10  |11/25  |12/13  |
・・・

まずファイル1、ファイル2、・・・を選択するSqlDataSourceを作り、
各行の描画を行うイベント?で、各ファイルに対するユーザの一覧を検索し・・・
と考えたのですが、それですと2次元の表の形にならないと思いますし、
かと言って全ての組み合わせを事前に抽出できたとしても
列が動的のためどうセルに埋め込んでいいのやら、などと悩んでいます。

実現方法の概要、あるいはこんな事を調べた方が良いという
キーワードだけでも教えていただけるとありがたいです。
宜しくお願いします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-12-12 05:40
引用:

DBのあるテーブルのレコード内容を元に単純な2次元の表を作成することは
GridViewで容易にできると思うのですが、
表の列の内容が動的に変化する、別テーブルのカラム要素である場合は
どの様に実現すれば宜しいのでしょうか?


列数が動的に変化するのであれば、GridViewのBoundFieldをダイナミックに追加するしかないのでは。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-12-12 09:12
引用:

キノ2さんの書き込み (2006-12-11 11:52) より:

■ file_table
fcode : ファイルコード
fname : ファイル名

■ user_table
uid : ユーザID
uname : ユーザ名

■ write_table
fcode : ファイルコード
uid : ユーザID
touch_date : 更新日


それ以前に、何故テーブルを結合したビューを作成しないのですか?
純粋に、このビューを元にして行項目と列項目のユニークなデータをソートしながら取得して、行と列を固定させて実データを当てはめて入れていくようなイメージになるかと思いますが。

_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-12-12 09:22
引用:

キノ2さんの書き込み (2006-12-11 11:52) より:

     |ユーザ1|ユーザ2|ユーザ3|・・・
−−−−−+−−−−+−−−−+−−−−+−−−
ファイル1|12/11  |12/10  |10/20  |
ファイル2|11/28  |11/15  |12/10  |
ファイル3|11/10  |11/25  |12/13  |
・・・


これってソート順の問題もあると思うけれど、こんな表になるんじゃないですか?
GridView でどうやるかはまた別問題ですけどね。
コード:
-----------+-----------+-------+
ファイル1 | ユーザ1  | YY/MM |
           |           | YY/MM |
           +-----------+-------+
           | ユーザ2  | YY/MM |
-----------+-----------+-------+
ファイル2 | ユーザ2  | YY/MM |
-----------+-----------+-------+


_________________
かるあ のメモスニペット
キノ2
会議室デビュー日: 2005/01/29
投稿数: 6
投稿日時: 2006-12-12 09:58
ご返答ありがとうございます。

> Accessさん
BoundFieldですね、調べてみます。

> R・田中一郎さん
Viewを作り、
ファイル1 ユーザ1 12/11
ファイル1 ユーザ2 12/10
ファイル1 ユーザ3 10/20
ファイル2 ユーザ1 11/28
...
といった結果は取れます。
>>行と列を固定させて実データを当てはめて入れていくようなイメージ
の所の手段について、もう少しヒントをいただけますでしょうか?

> かるあさん
ネストした形の表でしたら、以前Accessさんが別件でお答えになっていた手段で
できそうですね。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=31016&forum=7&3
今回はなんとか、希望の形の表を作りたいと考えています。
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-12-12 13:59


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 19:49 ]
キノ2
会議室デビュー日: 2005/01/29
投稿数: 6
投稿日時: 2006-12-13 09:11
ご返答ありがとうございます。

>ぜうすさん
いえいえ、助かります。
ストアドプロシージャでSQLを組み立て目的の形の表を作ってしまい、
その結果のデータセットを直接コントロールにバインドさせる、ということですね。

当方ストアドプロシージャは不勉強ですが、そちらの方向の勉強も進めてみます。
ありがとうございました。
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-12-13 12:47


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 19:50 ]

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