0

我的页面 Add.aspx 包含许多UserControls:AddRequest.ascx、AddOperation.ascx、AddObject.ascx 等。取决于Request["type"]一个控件变得可见。

每个都UserControl包含许多DropDownList正在通过SqlDataSourceDB 填充的 s。例如,类型、状态、货币等。

似乎适当SqlDataSource的 s 查询数据库,即使它的UserControl-owner 不可见。所以有了n控制,只有1查询是真正需要的,n-1而不是。

我怎样才能改变这种行为?

4

2 回答 2

2

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

于 2009-08-14T13:12:54.097 回答
1

如果我理解正确,您应该只加载您要显示的用户控件。就像是:

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

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

于 2009-08-14T12:56:44.433 回答