2009-08-14 63 views
0

我有頁面Add.aspx包含UserControls的數量:AddRequest.ascx,AddOperation.ascx,AddObject.ascx等根據Request["type"]一個控件變得可見。不填充DropDownList如果直接UserControl不可見

每個UserControl包含的數字DropDownList s是通過SqlDataSource從DB填充。例如,類型,狀態,貨幣等

看起來合適的SqlDataSource s查詢數據庫,即使它是UserControl - 所有者不可見。所以有n控件,只有1查詢是真的需要和n-1不是。

我該如何改變這種行爲?

回答

1

如果我理解正確,你應該只加載你要顯示的用戶控件。 喜歡的東西:

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

然後,您可以將控件添加到一個佔位符。 這樣可以避免將不必要的控件加載到您的頁面,並且也不會執行它們到數據庫的往返行程。

2

嘗試使自然中的用戶控件的加載(如@Dante所示)而不是聲明式(例如,通過在ASPX中註冊它)。這樣,只有顯式加載的控件應該調用它的相應數據源控件)。