- PR -

重複レコードを非表示するには?

1
投稿者投稿内容
ZoSo
会議室デビュー日: 2004/08/01
投稿数: 11
投稿日時: 2004-09-24 16:44
恐れ入ります。
ASP.NETページにてデータベースからあるテーブルをデータセットに取得して、それをWebページに表示されるようなものを作成しています。そこで、そのデータを表示する際にあるフィールドは一度だけ表示して、繰り返し表示されないようにしたいのです。MS-Accessのレポートウィザードのようなイメージです。
例)以下のようにしたい
Artist, Song
Beatles, Let it be
,Hard days night
Rooling Stones, Satisfaction
, Jampin Jack Flash

しかしながら、DataGrid,DataList,Repeaterフォームでは、テンプレートでフィールドを指定してしまうと、同じものが何回も出てしまう。
Artist, Song
Beatles, Let it be
Beatles, Hard days night
Rooling Stones, Satisfaction
Rooling Stones, Jampin Jack Flash

これらのフォームにMS-Accessレポートで言うところの[重複非表示]プロパティーがあれば良いのですが、なさそうです。何か良い知恵があれば是非お貸しください。

Webサーバー:IIS6
言語:VB.NET
データベース:MSDE
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-09-24 16:46
ItemDataBind(boundだっけ?)で、その項目の値をキャッシュしながら、同じ値だったらcell.textをクリアするようにすれば良いです。

_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
ZoSo
会議室デビュー日: 2004/08/01
投稿数: 11
投稿日時: 2004-09-25 16:13
返信ありがとうございます。
これをヒントに調べました。Repeaterフォームを使用していたのですが、この場合ItemCreatedイベントで目的のフィールドの値をキャッシュして、重複するようであれば値をクリアしていくようにしました。
ItemDataBoundイベントですと、Repeaterにデータ連結した時にイベント発生しているみたいで、この時に値をクリアするようにしても、結局Webページに出力するときにはRepeaterの方で値の入ったアイテムを作成してしまい、重複表示の表が出てきました。
1

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