0

I DataGrid'm binding to aがあり、結果として DataTable3 つの が表示されます。BoundColumn

たとえば、DataGrid の列 #3 が UserID の場合、それを使用してデータベースに対してクエリを実行し、ユーザーの名前を取得して表示したいと思います。 4列目。

これに対する推奨されるアプローチはありますか? 私は DataGrid の専門家ではありませんが、TemplateColumnこれらの線に沿って何かを見ている必要がありますか?

このすべてのクエリをどのイベントにフックする必要がありOnItemDataBoundますか?

4

2 に答える 2

3

推奨されるアプローチは、元のクエリの一部としてユーザーの名を返し、を使用することBoundColumnです。表示する前にデータを変更する必要がある場合は、はい、TemplateColumnおよびOnItemDataBoundイベントを使用してデータを操作できます。

クエリを実行OnItemDataBoundすることは、私がこれまでに奨励することではありません。したがって、グリッドに一度に100レコードが表示される場合、ページの読み込みごとに100個の追加クエリを実行しますか?これは、実装した場合、テスト中に合理的な範囲内で実行される可能性があるものです。ただし、負荷がかかると、何百もの余分なクエリを実行するのは得策ではないことがわかります。DB構造と複雑さに応じて、元のクエリを修正するか、非正規化テーブルを作成することで解決できます。クエリ。

同様の問題が発生したとき、非正規化テーブルルートを使用しました。

于 2013-03-21T21:35:42.880 に答える
0

SQL ステートメントで結合を使用して、他の値を取得します。

于 2013-03-21T22:50:41.547 に答える