2009-08-14 12 views
0

UserControls:AddRequest.ascx、AddOperation.ascx、AddObject.ascxなどの番号を持つページAdd.aspxがあります。Request["type"]に応じて、1つのコントロールが表示されます。Up32 UserControlが表示されていない場合、DropDownListを塗りつぶさない

UserControlは、DBからSqlDataSourceで充填されているDropDownListの数を含んでいます。たとえば、タイプ、ステータス、通貨など

UserControl - 所有者が表示されていない場合でも、SqlDataSourceはDBに問い合わせると思われます。したがって、nのコントロールを持つ場合は、1クエリのみが実際に必要であり、n-1はありません。

どのようにこの動作を変更できますか?

答えて

1

私が正しく理解している場合は、表示しようとしているユーザーコントロールのみを読み込むようにしてください。以下のような 何か:あなたはその後、プレースホルダにコントロールを追加することができます

Control myControl = LoadControl("SomeControl.ascx"); 

。 このようにして、不要なコントロールをページに読み込まないようにし、データベースへのラウンドトリップも実行しません。

2

(例えば、ASPXに登録することによって)宣言的ではなく、本質的に(@Danteによって示されるように)ユーザーコントロールのロードを必須にしてください。こうすることで、明示的にロードされたコントロールのみが、それぞれのデータソースコントロールを呼び出す必要があります)。

関連する問題