質問

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

タイプ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

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

誰でも役立つトリックを知っていますか?

役に立ちましたか?

解決

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

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

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

他のヒント

OK、解決策を思いついたところです。かなり汚れていますが。

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

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

これまでのところは機能しますが、それについてどう感じているかわかりません。

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

それらがタイプでソートされていると仮定すると、リスト全体を保持する必要はありません:現在のアイテムだけです。

制御/ブレークレポートの詳細については、こちらをご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top