我的页面Add.aspx包含许多UserControls
:AddRequest.ascx,AddOperation.ascx,AddObject.ascx等。根据Request["type"]
,一个控件变为可见。
每个UserControl
都包含许多DropDownList
个,这些SqlDataSource
是通过SqlDataSource
从DB填充的。例如,类型,状态,货币等
似乎适当的UserControl
查询数据库,即使它是n
- 所有者不可见。因此,设置1
控件时,实际上只需要n-1
个查询,而{{1}}则不需要。{/ p>
如何更改此行为?
答案 0 :(得分:2)
尝试加载用户控件本质上是必需的(如@Dante所示)而不是声明性(例如,通过在ASPX中注册它)。这样,只有显式加载的控件才能调用它的相应数据源控件。
答案 1 :(得分:1)
如果我理解正确,您应该只加载要显示的用户控件。 类似的东西:
Control myControl = LoadControl("SomeControl.ascx");
然后,您可以将控件添加到占位符。 这样就可以避免为页面加载不必要的控件,也不会执行到数据库的往返。