1

これを行う前に、それが最善の方法であるかどうかを尋ねることにしました。各「ベンダー」オブジェクトには「バケット」オブジェクトがあります。私のリピーターでは、Vendor からのいくつかのプロパティと Bucket からのいくつかのプロパティを表示する必要があります。これを行う最善の方法は、リピーターをベンダー オブジェクトにバインドすることであると考えました。次に、ItemDataBound で、その特定のアイテムにバインドされているベンダーに基づいて画像とバケットを設定します[e.Item.ItemIndex]。

これが最善の方法ですか?

4

2 に答える 2

2

それが私が通常行う方法であり、メイン オブジェクトにバインドし、ItemDataBound の詳細を処理します。

于 2008-09-20T06:05:22.970 に答える
2

Vendor オブジェクトが 1 つの Bucket オブジェクトしか保持できない場合は、すべてを 1 つの最上位リピーターにバインドすることが適切な場合があります。ItemDataBound をオーバーライドすることなく、トップ レベルで単純なデータ バインディングを介して Bucket にアクセスできます。

「ベンダー」をバインドしている可能性が最も高いため、次のようにしたい場合は、データバインドのメンバーにアクセスできます。

<%# DataBinder.Eval (Container.DataItem, "Bucket.Property" ) %>

バインディングの各反復中に「何かを処理」する必要があり、意思決定のために各 Vendor オブジェクトへの詳細なアクセスが必要な場合は、ItemDataBound を実行する必要があります。

Vendor オブジェクトが複数のバケットを保持できる場合、それにアクセスする最善の方法は、ItemDataBound を使用することです。Vendor の反復ごとに、ネストされた新しいリピーターをバインドしてバケット データを表示したり、必要な反復/集計機能を実行したりできます。

クライアントでの動作方法に応じて、ベンダーのみをレンダリングできます。ユーザーがベンダー (または何でも) をクリックすると、サーバーへの AJAX 呼び出しを実行して、バケット データを取得し、ページに動的にレンダリングできます。多数のベンダーとそのバケットがレンダリングされている場合は、このアプローチを試すことができます。これにより、すべてを ASPX サーバー側で構築する場合とは対照的に、データベースのパフォーマンスとページのレンダリング時間が向上します。(ただし、これには大量のデータが必要になるため、パフォーマンスの向上を試みる前に、使いやすさ/クライアントの理由から行う必要があります。)

于 2008-09-20T06:12:02.143 に答える