사용할 수있는 인덱스에 따라 특정 컨트롤을로드하는 프로젝트에서 작업하고 있습니다. 로드는 PopulateSearchField 메소드가 호출 된 페이지로드에서 발생합니다.FindControl 내 동적으로 추가 된 UserControl을 찾지 못할 것입니다
이 메서드 내에서 모든 UserControl은 다음을 사용하여 페이지에 추가됩니다. Page.LoadControl ("path");
페이지로드 및 필요한 모든 컨트롤이 페이지에 있습니다. 내 문제는 사용자가 검색 버튼을 클릭하면 이벤트가 트리거되고 해당 컨트롤의 사용자 입력에 따라 쿼리가 작성된 것입니다. 불행하게도이 메서드는 페이지의 컨트롤을 찾을 수 없기 때문에 적절한 쿼리를 생성 할 수 없습니다.
임시 ControlCollection 변수를 사용하면 페이지의 컨트롤 수가 4에서 10 사이 여야한다는 것을 알 수있었습니다. 컬렉션의 3 개의 컨트롤은 정적 레이블과 단추입니다 그 페이지.
이 솔루션이 프레임 워크 1.1에서 작동하는 데 사용 된 것과 같이 코드에 문제가 있거나 페이지주기 문제인지 여부는 알 수 없습니다. 그래,이게 가장 좋은 방법이 아니라는 걸 알지만,이 방법으로 해냈어.
문제의 원인인지 여부는 확실하지 않습니다.
고마워요, David!
업데이트 : 적어도 PopulateSearchField 메서드를 사용하는 위치에 따라 Page_Load 또는 PreInit의 끝 부분에서 Page.Controls 컬렉션에 도달 할 수 있으며 모든 동적 추가 컨트롤이 있습니다. Search_Button.click()에서만 해당 컨트롤이 더 이상 존재하지 않습니다. 어쩌면 당신을 도울 수 있습니다. – David