2009-08-14 4 views
0

UserControls : AddRequest.ascx, AddOperation.ascx, AddObject.ascx 등의 숫자가 포함 된 페이지 Add.aspx가 있습니다. Request["type"]에 따라 하나의 컨트롤이 표시됩니다.Up32 UserControl이 보이지 않는 경우 DropDownList를 채우지 마십시오.

UserControl은 DB에서 SqlDataSource을 통해 채우는 숫자 DropDownList을 포함합니다. 예 : 유형, 상태, 통화 등

SqlDataSourceUserControl - 소유자가 보이지 않아도 DB를 쿼리하는 것으로 보입니다. 따라서 n 컨트롤을 사용하는 경우 1 쿼리 만 필요하며 n-1은 그렇지 않습니다.

이 동작을 어떻게 변경합니까?

답변

1

제대로 이해했다면 표시하려는 사용자 정의 컨트롤 만로드해야합니다. 같은 뭔가 : 그런 다음 자리 표시 자에 컨트롤을 추가 할 수 있습니다

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

. 이렇게하면 페이지에 불필요한 컨트롤이로드되는 것을 방지 할 수 있으며 데이터베이스 왕복도 수행되지 않습니다.

2

선언적 (예 : ASPX에 등록) 대신 자연히 (@Dante에 의해 입증 된 것처럼) usercontrols로드가 필수적으로되도록하십시오. 그렇게하면 명시 적으로로드 된 컨트롤 만 해당 데이터 소스 컨트롤을 호출해야합니다.

관련 문제