- PR -

データグリッドの階層化の方法について

1
投稿者投稿内容
あひる隊長
常連さん
会議室デビュー日: 2003/07/23
投稿数: 36
投稿日時: 2004-02-20 10:20
現在Webアプリケーションを開発しているのですが、
データグリッドに表示されるデータ(レコード)を階層化する必要があります。

階層化と言うのは以下のような感じで、

大項目1
 中項目1-1
  小項目1-1-1
  小項目1-1-2
 中項目1-2
 小項目1-2-1
大項目2
 中項目2-1

イメージとしてはツリービューのような感じになります。
項目はDBから引っ張ってきたデータに応じて動的に変わります。

少しわかり辛いかもしれませんが、宜しくお願いいたします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-20 10:42
引用:

上尾幽霊さんの書き込み (2004-02-20 10:20) より:
現在Webアプリケーションを開発しているのですが、
データグリッドに表示されるデータ(レコード)を階層化する必要があります。

階層化と言うのは以下のような感じで、

大項目1
 中項目1-1
  小項目1-1-1
  小項目1-1-2
 中項目1-2
 小項目1-2-1
大項目2
 中項目2-1

イメージとしてはツリービューのような感じになります。
項目はDBから引っ張ってきたデータに応じて動的に変わります。

少しわかり辛いかもしれませんが、宜しくお願いいたします。




NAL-6295です。

UltraWebGridをお勧めします。
http://www.grapecity.com/japan/support/database/P7_239.htm

サードパーティの製品を使用できないのであれば、カスタムコントロールを作成されると良いでしょう。労力は多大ですが・・・。

[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-02-20 10:42 ]
501XX
会議室デビュー日: 2003/09/15
投稿数: 2
投稿日時: 2004-02-20 12:08
DataGridのカラムにDataGridをネストすればよいのではないでしょうか。
ちなみに手元にある「プロが作った! ASP/ADO.NET実践サンプル集」(技術評論社)にはサンプルコードも載っているようです。
なおこちらでは明細の表示/非表示を展開/折りたたみで制御するユーザコントロールを作成しましたが、NAL-6295さんのおっしゃる通りプログラムを書いていた人間は泣きそうなほどの苦労を強いられました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-20 13:01
 データの作りがどうなっているのかわかりませんが、まだ作っていないなら、このような感じにします。

コード:
DATAID PARENTID DATAFIELD
------ -------- ---------
     1     null 大項目1
     2     null 大項目2
     3        1 中項目1-1
     4        1 中項目1-2
     5        3 小項目1-1-1



このテーブルにPARENTID-DATAIDでリレーションを張って、DataSetに放り込み、DataGridで表示すると、「階層の展開」ができるようになります。ツリービューのようではないのですが・・・
あひる隊長
常連さん
会議室デビュー日: 2003/07/23
投稿数: 36
投稿日時: 2004-02-20 13:38
NAL-6295さん、501XXさん、Jittaさん
レスありがとうございます。

とりあえず501XXさんに教えて頂いた書籍を参考に
してみて、それからJittaさんのやり方も試して
みたいと思います。

なんとかなりそうな目処がついてきました!
ありがとうございました。
1

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