たとえば、米国の州のリストを繰り返し、各州の名前の後に都市と人口の表を表示する必要があるシナリオがあります。設計要件では、すべての外側の繰り返しは州名の後に都市の表が続く必要があると規定されており、現時点ではその要件を変更することはできません。Repeater 内に GridView をネストし、Repeater のItemDataBound
イベント中に繰り返される各 GridView をバインドすることには欠点がありますか? いくつかの代替ソリューションは何ですか?
4 に答える
それが私だったら、質問を逆にして、GridViewを使用する理由を尋ねます。ページングや並べ替えなどの組み込み機能が必要な場合は、GridView が適している可能性があります。表形式のデータだけが必要な場合は、再考します。なんで?GridView を使用すると、使用しないものを大量に取得するため、ViewState が巨大になる可能性があり、ページのパフォーマンスが低下します。
私は GridView に関して偏見はありませんが、非常に正当な理由がある場合にのみ使用します。
少なくとも、GridViewsでViewStateをオフにできることを願っています。
私が思いついた最善の解決策は、Repeater に GridView を入れ子にすることでした。次に、Repeater の ItemDataBound イベント中に、繰り返される各 GridView をバインドします。もちろん、ViewState は必要ないのでオフにしました。
上記のシナリオでは、作成されるすべての GridView オブジェクトのオーバーヘッドを節約できる、マスター/ディテール スタイルの GridView を使用することをお勧めします。
これにはさまざまな実装があります (マスターにドロップダウンを使用する、詳細にモーダル ポップアップを使用するなど) が、主なポイントは利用可能な実装があるということです。