3

以下のようなものを表示する必要があります。

タイプA

  1. タイプAアイテム1
  2. タイプAアイテム2
  3. タイプAアイテム3

タイプB

  1. タイプBアイテム1
  2. タイプBアイテム2
  3. タイプBアイテム3

タイプC

  1. タイプCアイテム1
  2. タイプCアイテム2
  3. タイプCアイテム3

すべてのデータは、「Type」列と「ItemName」列を持つデータセットから取得されます。ここでの簡単な解決策は、「タイプ」ごとにリピーターを作成し、「タイプ」ごとにデータセットをフィルター処理することです。ただし、リピーターを1つだけ使用したいのですが、その問題は、新しい各セクションにヘッダーがあるかどうかを認識する方法が必要なことです。

<div>[Header][Item]</div>

[Header] = <b>Type A</b><br />
[Item] = Type A Item 1

したがって、各タイプの最初のアイテムのみがヘッダーアイテムを取得し、他のすべてのアイテムは空の文字列に設定されます。

誰かが役立つかもしれないトリックを知っていますか?

4

3 に答える 3

2

タイプごとにリピーターを作成する代わりに、ネストされたリピーターはどうですか?

http://www.codeproject.com/KB/aspnet/AspNetNestedRepeaters.aspx

それを試してみてください。それでも複数のリピーターが必要になりますが、この場合、必要なのは 2 つだけであり、(恐れていたように) タイプごとに 1 つ作成する必要はなく、タイプごとに 1 つと、ネストされたものを 1 つ作成する必要があります。その中にアイテムがあります。上記のリンクは、さらに調査するための良い出発点となるはずです。

于 2009-01-06T17:43:18.203 に答える
0

わかりました、解決策を思いつきました。かなり汚れていますが。

ヘッダーを追跡するグローバル変数を作成しました。変数は文字列のリストです。OnItemDatabind ヘッダー アイテムがグローバル リストにあるかどうかを確認します。

アイテムが存在しない場合は、リストに追加してヘッダーを表示します。それ以外の場合、ヘッダー項目は空です。

これまでのところ、これはうまくいきますが、私はそれについてどのように感じているかわかりません。

編集:別のコントロールがこれでうまく機能するかどうか疑問に思っています...

于 2009-01-06T17:36:37.467 に答える