Vendor オブジェクトが 1 つの Bucket オブジェクトしか保持できない場合は、すべてを 1 つの最上位リピーターにバインドすることが適切な場合があります。ItemDataBound をオーバーライドすることなく、トップ レベルで単純なデータ バインディングを介して Bucket にアクセスできます。
「ベンダー」をバインドしている可能性が最も高いため、次のようにしたい場合は、データバインドのメンバーにアクセスできます。
<%# DataBinder.Eval (Container.DataItem, "Bucket.Property" ) %>
バインディングの各反復中に「何かを処理」する必要があり、意思決定のために各 Vendor オブジェクトへの詳細なアクセスが必要な場合は、ItemDataBound を実行する必要があります。
Vendor オブジェクトが複数のバケットを保持できる場合、それにアクセスする最善の方法は、ItemDataBound を使用することです。Vendor の反復ごとに、ネストされた新しいリピーターをバインドしてバケット データを表示したり、必要な反復/集計機能を実行したりできます。
クライアントでの動作方法に応じて、ベンダーのみをレンダリングできます。ユーザーがベンダー (または何でも) をクリックすると、サーバーへの AJAX 呼び出しを実行して、バケット データを取得し、ページに動的にレンダリングできます。多数のベンダーとそのバケットがレンダリングされている場合は、このアプローチを試すことができます。これにより、すべてを ASPX サーバー側で構築する場合とは対照的に、データベースのパフォーマンスとページのレンダリング時間が向上します。(ただし、これには大量のデータが必要になるため、パフォーマンスの向上を試みる前に、使いやすさ/クライアントの理由から行う必要があります。)