如果看不到直立的UserControl,请不要填充DropDownList

时间:2009-08-14 12:45:20

标签: .net asp.net data-binding sqldatasource

我的页面Add.aspx包含许多UserControls:AddRequest.ascx,AddOperation.ascx,AddObject.ascx等。根据Request["type"],一个控件变为可见。

每个UserControl都包含许多DropDownList个,这些SqlDataSource是通过SqlDataSource从DB填充的。例如,类型,状态,货币等

似乎适当的UserControl查询数据库,即使它是n - 所有者不可见。因此,设置1控件时,实际上只需要n-1个查询,而{{1}}则不需要。{/ p>

如何更改此行为?

2 个答案:

答案 0 :(得分:2)

尝试加载用户控件本质上是必需的(如@Dante所示)而不是声明性(例如,通过在ASPX中注册它)。这样,只有显式加载的控件才能调用它的相应数据源控件。

答案 1 :(得分:1)

如果我理解正确,您应该只加载要显示的用户控件。 类似的东西:

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

然后,您可以将控件添加到占位符。 这样就可以避免为页面加载不必要的控件,也不会执行到数据库的往返。