- - PR -
1つのテーブルを複数のDataGridに表示したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-11-30 13:45
初めて利用します。
XP VB.NET で開発しています。 よろしくお願いいたします。 1つのテーブルに500件以上レコードが入っていて全て表示したいのですが、 項目は3つしかありません。 3列20行のDataGrid(Webフォーム)を1画面に4つ(横に並べて)表示したいのです。 1つのDataGridに20件表示できるので次のページになった場合は91レコード目からの表示になります。 配列を使うのか・・・。レコード番号で取得するのか・・・。 何をどうしたら一番よいのか悩んでいます。 どうかよろしくお願いします。 |
|
投稿日時: 2005-11-30 13:58
すみません...。間違えてました。
次のページになった場合は81レコード目からの表示でした。 よろしくお願いします。 |
|
投稿日時: 2005-11-30 14:28
3列のデータテーブルを12列のデータテーブルにデータを配置し直して、それを一つのデータグリッドにバインドして表示させるのが簡単だと思います。[ メッセージ編集済み 編集者: trapemiya 編集日時 2005-11-30 14:28 ] |
|
投稿日時: 2005-11-30 14:50
早速の返答、ありがとうございます。
新しいデータテーブルを作成してそれをバインドするのが簡単なのですね。 そうなると、次のページのリクエスト(ファンクションキーに設定)がきた場合は 81レコード目からまた作成しなおして表示。ということになるのでしょうか・・・。 いや!違いますよね。 For Next 等 使って20行4×3列分(80番目のレコードまで)が 1枚の画面に入るように全件レコードを新しいデータテーブルに作り直しちゃう。 って事ですよね。 あぁっ。なんか理解したんだかしてないのだか・・・。 これでいいのでしょうか・・・。 [ メッセージ編集済み 編集者: kei 編集日時 2005-11-30 14:52 ] |
|
投稿日時: 2005-11-30 15:03
1画面に20行と固定されているなら、最初の80件までを20行にセットし、次の80件を21行目から40行目までにセットし・・・を繰り替えてデータテーブルを作成し、それをデータグリッドにバインドして、後は、データグリッドのページング機能を使っちゃうというように私は構想しました。構想だけで実際にやったことはありません。(^^;
|
|
投稿日時: 2005-11-30 15:23
ありがとうございます。
.Net歴2ヶ月弱なので、なにをどうしたら一番良いのかがわからなかったりするのです。 いろんなロジックは考えられるのですが、遠回りしてるような気がしたり、 もっと簡単な方法があるのではないか?って考えたり、もんもんとしてました。 今回の返答で私の頭の中にイメージはできました。 実際にやってみて、上手くいったらまた報告します。 |
|
投稿日時: 2005-12-01 15:48
こんにちは。
一応別案として、スレタイ通りの「複数のDataGridを使用する」方法を。 まず、画面上に5つのDataGridを配置します(仮にdg1〜5とします)。 この5つのDataGridに、同じDataSourceをセットしてDataBindさせます。 dg1はページャ用。PageSizeを80にしておいて、 ページャ以外の部分を非表示にします。 ヘッダとフッタはプロパティビルダから非表示にできますが、 本体は画面デザイナから非表示にできないので、これを応用します。 #背景色を設定してるとこをVisible=falseに変える dg2〜5は表示用。PageSizeを20にし、ページャを非表示にします。 DataBindする前に、CurrentPageIndexをそれぞれ0,1,2,3にします。 ページ切換時は、dg1のPageIndexChangedのイベントハンドラで、 dg2〜5のCurrentPageIndexをe.NewPageIndex×4+0,1,2,3にして、 再度DataBindします。 最終ページで表示データ数が60以下のときは、 データ数に応じてdg3〜5のVisibleをFalseにして、 DataBindしないようにし、表ごと非表示にしてしまいます。 |
|
投稿日時: 2005-12-01 16:54
ぼのぼのさんありがとうございます!
読みながら、へぇ〜なるほどぉ・・・。と感動してしまいました。 こんなやり方思いつきませんでした。いろいろとあるのですね。 現在は先の方法でテスト画面作成中で、やっとページングができるようになったところです。 いい感じです。trapemiyaさんありがとうございました! いまから本番画面を作成しようと思います。 実は似たような画面作成依頼がまだあって、 ぜひともぼのぼのさんのやり方を使ってみたいと思っています。 |
1